↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
times_in_aag(one(b), X, X) → times_out_aag(one(b), X, X)
times_in_aag(zero(R), S, zero(RS)) → U35_aag(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(b), X, X) → times_out_aaa(one(b), X, X)
times_in_aaa(zero(R), S, zero(RS)) → U35_aaa(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(R), S, RSS) → U36_aaa(R, S, RSS, times_in_aaa(R, S, RS))
U36_aaa(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aaa(R, S, RSS, add_in_aga(S, zero(RS), RSS))
add_in_aga(b, b, b) → add_out_aga(b, b, b)
add_in_aga(X, b, X) → U1_aga(X, binaryZ_in_a(X))
binaryZ_in_a(zero(X)) → U29_a(X, binaryZ_in_a(X))
binaryZ_in_a(one(X)) → U30_a(X, binary_in_a(X))
binary_in_a(b) → binary_out_a(b)
binary_in_a(zero(X)) → U27_a(X, binaryZ_in_a(X))
U27_a(X, binaryZ_out_a(X)) → binary_out_a(zero(X))
binary_in_a(one(X)) → U28_a(X, binary_in_a(X))
U28_a(X, binary_out_a(X)) → binary_out_a(one(X))
U30_a(X, binary_out_a(X)) → binaryZ_out_a(one(X))
U29_a(X, binaryZ_out_a(X)) → binaryZ_out_a(zero(X))
U1_aga(X, binaryZ_out_a(X)) → add_out_aga(X, b, X)
add_in_aga(b, Y, Y) → U2_aga(Y, binaryZ_in_g(Y))
binaryZ_in_g(zero(X)) → U29_g(X, binaryZ_in_a(X))
U29_g(X, binaryZ_out_a(X)) → binaryZ_out_g(zero(X))
binaryZ_in_g(one(X)) → U30_g(X, binary_in_g(X))
binary_in_g(b) → binary_out_g(b)
binary_in_g(zero(X)) → U27_g(X, binaryZ_in_a(X))
U27_g(X, binaryZ_out_a(X)) → binary_out_g(zero(X))
binary_in_g(one(X)) → U28_g(X, binary_in_g(X))
U28_g(X, binary_out_g(X)) → binary_out_g(one(X))
U30_g(X, binary_out_g(X)) → binaryZ_out_g(one(X))
U2_aga(Y, binaryZ_out_g(Y)) → add_out_aga(b, Y, Y)
add_in_aga(X, Y, Z) → U3_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(zero(X), zero(Y), zero(Z)) → U10_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), zero(Y), zero(Z)) → U10_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), one(Y), one(Z)) → U11_aaa(X, Y, Z, addx_in_aaa(X, Y, Z))
addx_in_aaa(one(X), b, one(X)) → U4_aaa(X, binary_in_a(X))
U4_aaa(X, binary_out_a(X)) → addx_out_aaa(one(X), b, one(X))
addx_in_aaa(zero(X), b, zero(X)) → U5_aaa(X, binaryZ_in_a(X))
U5_aaa(X, binaryZ_out_a(X)) → addx_out_aaa(zero(X), b, zero(X))
addx_in_aaa(X, Y, Z) → U6_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), zero(Y), one(Z)) → U12_aaa(X, Y, Z, addy_in_aaa(X, Y, Z))
addy_in_aaa(b, one(Y), one(Y)) → U7_aaa(Y, binary_in_a(Y))
U7_aaa(Y, binary_out_a(Y)) → addy_out_aaa(b, one(Y), one(Y))
addy_in_aaa(b, zero(Y), zero(Y)) → U8_aaa(Y, binaryZ_in_a(Y))
U8_aaa(Y, binaryZ_out_a(Y)) → addy_out_aaa(b, zero(Y), zero(Y))
addy_in_aaa(X, Y, Z) → U9_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), one(Y), zero(Z)) → U13_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
addc_in_aaa(b, b, one(b)) → addc_out_aaa(b, b, one(b))
addc_in_aaa(X, b, Z) → U14_aaa(X, Z, succZ_in_aa(X, Z))
succZ_in_aa(zero(X), one(X)) → U33_aa(X, binaryZ_in_a(X))
U33_aa(X, binaryZ_out_a(X)) → succZ_out_aa(zero(X), one(X))
succZ_in_aa(one(X), zero(Z)) → U34_aa(X, Z, succ_in_aa(X, Z))
succ_in_aa(b, one(b)) → succ_out_aa(b, one(b))
succ_in_aa(zero(X), one(X)) → U31_aa(X, binaryZ_in_a(X))
U31_aa(X, binaryZ_out_a(X)) → succ_out_aa(zero(X), one(X))
succ_in_aa(one(X), zero(Z)) → U32_aa(X, Z, succ_in_aa(X, Z))
U32_aa(X, Z, succ_out_aa(X, Z)) → succ_out_aa(one(X), zero(Z))
U34_aa(X, Z, succ_out_aa(X, Z)) → succZ_out_aa(one(X), zero(Z))
U14_aaa(X, Z, succZ_out_aa(X, Z)) → addc_out_aaa(X, b, Z)
addc_in_aaa(b, Y, Z) → U15_aaa(Y, Z, succZ_in_aa(Y, Z))
U15_aaa(Y, Z, succZ_out_aa(Y, Z)) → addc_out_aaa(b, Y, Z)
addc_in_aaa(X, Y, Z) → U16_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(zero(X), zero(Y), one(Z)) → U23_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), zero(Y), one(Z))
addC_in_aaa(zero(X), one(Y), zero(Z)) → U24_aaa(X, Y, Z, addX_in_aaa(X, Y, Z))
addX_in_aaa(zero(X), b, one(X)) → U17_aaa(X, binaryZ_in_a(X))
U17_aaa(X, binaryZ_out_a(X)) → addX_out_aaa(zero(X), b, one(X))
addX_in_aaa(one(X), b, zero(Z)) → U18_aaa(X, Z, succ_in_aa(X, Z))
U18_aaa(X, Z, succ_out_aa(X, Z)) → addX_out_aaa(one(X), b, zero(Z))
addX_in_aaa(X, Y, Z) → U19_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), zero(Y), zero(Z)) → U25_aaa(X, Y, Z, addY_in_aaa(X, Y, Z))
addY_in_aaa(b, zero(Y), one(Y)) → U20_aaa(Y, binaryZ_in_a(Y))
U20_aaa(Y, binaryZ_out_a(Y)) → addY_out_aaa(b, zero(Y), one(Y))
addY_in_aaa(b, one(Y), zero(Z)) → U21_aaa(Y, Z, succ_in_aa(Y, Z))
U21_aaa(Y, Z, succ_out_aa(Y, Z)) → addY_out_aaa(b, one(Y), zero(Z))
addY_in_aaa(X, Y, Z) → U22_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), one(Y), one(Z)) → U26_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
U26_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), one(Y), one(Z))
U22_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addY_out_aaa(X, Y, Z)
U25_aaa(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), zero(Y), zero(Z))
U19_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addX_out_aaa(X, Y, Z)
U24_aaa(X, Y, Z, addX_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), one(Y), zero(Z))
U16_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addc_out_aaa(X, Y, Z)
U13_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), one(Y), zero(Z))
U9_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addy_out_aaa(X, Y, Z)
U12_aaa(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), zero(Y), one(Z))
U6_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addx_out_aaa(X, Y, Z)
U11_aaa(X, Y, Z, addx_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), one(Y), one(Z))
U10_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), zero(Y), zero(Z))
U10_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aga(zero(X), zero(Y), zero(Z))
addz_in_aga(zero(X), one(Y), one(Z)) → U11_aga(X, Y, Z, addx_in_aga(X, Y, Z))
addx_in_aga(one(X), b, one(X)) → U4_aga(X, binary_in_a(X))
U4_aga(X, binary_out_a(X)) → addx_out_aga(one(X), b, one(X))
addx_in_aga(zero(X), b, zero(X)) → U5_aga(X, binaryZ_in_a(X))
U5_aga(X, binaryZ_out_a(X)) → addx_out_aga(zero(X), b, zero(X))
addx_in_aga(X, Y, Z) → U6_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(one(X), zero(Y), one(Z)) → U12_aga(X, Y, Z, addy_in_aaa(X, Y, Z))
U12_aga(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aga(one(X), zero(Y), one(Z))
addz_in_aga(one(X), one(Y), zero(Z)) → U13_aga(X, Y, Z, addc_in_aga(X, Y, Z))
addc_in_aga(b, b, one(b)) → addc_out_aga(b, b, one(b))
addc_in_aga(X, b, Z) → U14_aga(X, Z, succZ_in_aa(X, Z))
U14_aga(X, Z, succZ_out_aa(X, Z)) → addc_out_aga(X, b, Z)
addc_in_aga(b, Y, Z) → U15_aga(Y, Z, succZ_in_ga(Y, Z))
succZ_in_ga(zero(X), one(X)) → U33_ga(X, binaryZ_in_a(X))
U33_ga(X, binaryZ_out_a(X)) → succZ_out_ga(zero(X), one(X))
succZ_in_ga(one(X), zero(Z)) → U34_ga(X, Z, succ_in_ga(X, Z))
succ_in_ga(b, one(b)) → succ_out_ga(b, one(b))
succ_in_ga(zero(X), one(X)) → U31_ga(X, binaryZ_in_a(X))
U31_ga(X, binaryZ_out_a(X)) → succ_out_ga(zero(X), one(X))
succ_in_ga(one(X), zero(Z)) → U32_ga(X, Z, succ_in_ga(X, Z))
U32_ga(X, Z, succ_out_ga(X, Z)) → succ_out_ga(one(X), zero(Z))
U34_ga(X, Z, succ_out_ga(X, Z)) → succZ_out_ga(one(X), zero(Z))
U15_aga(Y, Z, succZ_out_ga(Y, Z)) → addc_out_aga(b, Y, Z)
addc_in_aga(X, Y, Z) → U16_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(zero(X), zero(Y), one(Z)) → U23_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aga(zero(X), zero(Y), one(Z))
addC_in_aga(zero(X), one(Y), zero(Z)) → U24_aga(X, Y, Z, addX_in_aga(X, Y, Z))
addX_in_aga(zero(X), b, one(X)) → U17_aga(X, binaryZ_in_a(X))
U17_aga(X, binaryZ_out_a(X)) → addX_out_aga(zero(X), b, one(X))
addX_in_aga(one(X), b, zero(Z)) → U18_aga(X, Z, succ_in_aa(X, Z))
U18_aga(X, Z, succ_out_aa(X, Z)) → addX_out_aga(one(X), b, zero(Z))
addX_in_aga(X, Y, Z) → U19_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(one(X), zero(Y), zero(Z)) → U25_aga(X, Y, Z, addY_in_aaa(X, Y, Z))
U25_aga(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aga(one(X), zero(Y), zero(Z))
addC_in_aga(one(X), one(Y), one(Z)) → U26_aga(X, Y, Z, addc_in_aga(X, Y, Z))
U26_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addC_out_aga(one(X), one(Y), one(Z))
U19_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addX_out_aga(X, Y, Z)
U24_aga(X, Y, Z, addX_out_aga(X, Y, Z)) → addC_out_aga(zero(X), one(Y), zero(Z))
U16_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addc_out_aga(X, Y, Z)
U13_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_aga(one(X), one(Y), zero(Z))
U6_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → addx_out_aga(X, Y, Z)
U11_aga(X, Y, Z, addx_out_aga(X, Y, Z)) → addz_out_aga(zero(X), one(Y), one(Z))
U3_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → add_out_aga(X, Y, Z)
U37_aaa(R, S, RSS, add_out_aga(S, zero(RS), RSS)) → times_out_aaa(one(R), S, RSS)
U35_aaa(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aaa(zero(R), S, zero(RS))
U35_aag(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aag(zero(R), S, zero(RS))
times_in_aag(one(R), S, RSS) → U36_aag(R, S, RSS, times_in_aaa(R, S, RS))
U36_aag(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aag(R, S, RSS, add_in_agg(S, zero(RS), RSS))
add_in_agg(b, b, b) → add_out_agg(b, b, b)
add_in_agg(X, b, X) → U1_agg(X, binaryZ_in_g(X))
U1_agg(X, binaryZ_out_g(X)) → add_out_agg(X, b, X)
add_in_agg(b, Y, Y) → U2_agg(Y, binaryZ_in_g(Y))
U2_agg(Y, binaryZ_out_g(Y)) → add_out_agg(b, Y, Y)
add_in_agg(X, Y, Z) → U3_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(zero(X), zero(Y), zero(Z)) → U10_agg(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_agg(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_agg(zero(X), zero(Y), zero(Z))
addz_in_agg(zero(X), one(Y), one(Z)) → U11_agg(X, Y, Z, addx_in_agg(X, Y, Z))
addx_in_agg(one(X), b, one(X)) → U4_agg(X, binary_in_g(X))
U4_agg(X, binary_out_g(X)) → addx_out_agg(one(X), b, one(X))
addx_in_agg(zero(X), b, zero(X)) → U5_agg(X, binaryZ_in_a(X))
U5_agg(X, binaryZ_out_a(X)) → addx_out_agg(zero(X), b, zero(X))
addx_in_agg(X, Y, Z) → U6_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(one(X), zero(Y), one(Z)) → U12_agg(X, Y, Z, addy_in_aag(X, Y, Z))
addy_in_aag(b, one(Y), one(Y)) → U7_aag(Y, binary_in_g(Y))
U7_aag(Y, binary_out_g(Y)) → addy_out_aag(b, one(Y), one(Y))
addy_in_aag(b, zero(Y), zero(Y)) → U8_aag(Y, binaryZ_in_a(Y))
U8_aag(Y, binaryZ_out_a(Y)) → addy_out_aag(b, zero(Y), zero(Y))
addy_in_aag(X, Y, Z) → U9_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(zero(X), zero(Y), zero(Z)) → U10_aag(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_aag(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aag(zero(X), zero(Y), zero(Z))
addz_in_aag(zero(X), one(Y), one(Z)) → U11_aag(X, Y, Z, addx_in_aag(X, Y, Z))
addx_in_aag(one(X), b, one(X)) → U4_aag(X, binary_in_g(X))
U4_aag(X, binary_out_g(X)) → addx_out_aag(one(X), b, one(X))
addx_in_aag(zero(X), b, zero(X)) → U5_aag(X, binaryZ_in_a(X))
U5_aag(X, binaryZ_out_a(X)) → addx_out_aag(zero(X), b, zero(X))
addx_in_aag(X, Y, Z) → U6_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(one(X), zero(Y), one(Z)) → U12_aag(X, Y, Z, addy_in_aag(X, Y, Z))
U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_aag(one(X), zero(Y), one(Z))
addz_in_aag(one(X), one(Y), zero(Z)) → U13_aag(X, Y, Z, addc_in_aaa(X, Y, Z))
U13_aag(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aag(one(X), one(Y), zero(Z))
U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addx_out_aag(X, Y, Z)
U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) → addz_out_aag(zero(X), one(Y), one(Z))
U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addy_out_aag(X, Y, Z)
U12_agg(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_agg(one(X), zero(Y), one(Z))
addz_in_agg(one(X), one(Y), zero(Z)) → U13_agg(X, Y, Z, addc_in_aga(X, Y, Z))
U13_agg(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_agg(one(X), one(Y), zero(Z))
U6_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → addx_out_agg(X, Y, Z)
U11_agg(X, Y, Z, addx_out_agg(X, Y, Z)) → addz_out_agg(zero(X), one(Y), one(Z))
U3_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → add_out_agg(X, Y, Z)
U37_aag(R, S, RSS, add_out_agg(S, zero(RS), RSS)) → times_out_aag(one(R), S, RSS)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PrologToPiTRSProof
times_in_aag(one(b), X, X) → times_out_aag(one(b), X, X)
times_in_aag(zero(R), S, zero(RS)) → U35_aag(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(b), X, X) → times_out_aaa(one(b), X, X)
times_in_aaa(zero(R), S, zero(RS)) → U35_aaa(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(R), S, RSS) → U36_aaa(R, S, RSS, times_in_aaa(R, S, RS))
U36_aaa(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aaa(R, S, RSS, add_in_aga(S, zero(RS), RSS))
add_in_aga(b, b, b) → add_out_aga(b, b, b)
add_in_aga(X, b, X) → U1_aga(X, binaryZ_in_a(X))
binaryZ_in_a(zero(X)) → U29_a(X, binaryZ_in_a(X))
binaryZ_in_a(one(X)) → U30_a(X, binary_in_a(X))
binary_in_a(b) → binary_out_a(b)
binary_in_a(zero(X)) → U27_a(X, binaryZ_in_a(X))
U27_a(X, binaryZ_out_a(X)) → binary_out_a(zero(X))
binary_in_a(one(X)) → U28_a(X, binary_in_a(X))
U28_a(X, binary_out_a(X)) → binary_out_a(one(X))
U30_a(X, binary_out_a(X)) → binaryZ_out_a(one(X))
U29_a(X, binaryZ_out_a(X)) → binaryZ_out_a(zero(X))
U1_aga(X, binaryZ_out_a(X)) → add_out_aga(X, b, X)
add_in_aga(b, Y, Y) → U2_aga(Y, binaryZ_in_g(Y))
binaryZ_in_g(zero(X)) → U29_g(X, binaryZ_in_a(X))
U29_g(X, binaryZ_out_a(X)) → binaryZ_out_g(zero(X))
binaryZ_in_g(one(X)) → U30_g(X, binary_in_g(X))
binary_in_g(b) → binary_out_g(b)
binary_in_g(zero(X)) → U27_g(X, binaryZ_in_a(X))
U27_g(X, binaryZ_out_a(X)) → binary_out_g(zero(X))
binary_in_g(one(X)) → U28_g(X, binary_in_g(X))
U28_g(X, binary_out_g(X)) → binary_out_g(one(X))
U30_g(X, binary_out_g(X)) → binaryZ_out_g(one(X))
U2_aga(Y, binaryZ_out_g(Y)) → add_out_aga(b, Y, Y)
add_in_aga(X, Y, Z) → U3_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(zero(X), zero(Y), zero(Z)) → U10_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), zero(Y), zero(Z)) → U10_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), one(Y), one(Z)) → U11_aaa(X, Y, Z, addx_in_aaa(X, Y, Z))
addx_in_aaa(one(X), b, one(X)) → U4_aaa(X, binary_in_a(X))
U4_aaa(X, binary_out_a(X)) → addx_out_aaa(one(X), b, one(X))
addx_in_aaa(zero(X), b, zero(X)) → U5_aaa(X, binaryZ_in_a(X))
U5_aaa(X, binaryZ_out_a(X)) → addx_out_aaa(zero(X), b, zero(X))
addx_in_aaa(X, Y, Z) → U6_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), zero(Y), one(Z)) → U12_aaa(X, Y, Z, addy_in_aaa(X, Y, Z))
addy_in_aaa(b, one(Y), one(Y)) → U7_aaa(Y, binary_in_a(Y))
U7_aaa(Y, binary_out_a(Y)) → addy_out_aaa(b, one(Y), one(Y))
addy_in_aaa(b, zero(Y), zero(Y)) → U8_aaa(Y, binaryZ_in_a(Y))
U8_aaa(Y, binaryZ_out_a(Y)) → addy_out_aaa(b, zero(Y), zero(Y))
addy_in_aaa(X, Y, Z) → U9_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), one(Y), zero(Z)) → U13_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
addc_in_aaa(b, b, one(b)) → addc_out_aaa(b, b, one(b))
addc_in_aaa(X, b, Z) → U14_aaa(X, Z, succZ_in_aa(X, Z))
succZ_in_aa(zero(X), one(X)) → U33_aa(X, binaryZ_in_a(X))
U33_aa(X, binaryZ_out_a(X)) → succZ_out_aa(zero(X), one(X))
succZ_in_aa(one(X), zero(Z)) → U34_aa(X, Z, succ_in_aa(X, Z))
succ_in_aa(b, one(b)) → succ_out_aa(b, one(b))
succ_in_aa(zero(X), one(X)) → U31_aa(X, binaryZ_in_a(X))
U31_aa(X, binaryZ_out_a(X)) → succ_out_aa(zero(X), one(X))
succ_in_aa(one(X), zero(Z)) → U32_aa(X, Z, succ_in_aa(X, Z))
U32_aa(X, Z, succ_out_aa(X, Z)) → succ_out_aa(one(X), zero(Z))
U34_aa(X, Z, succ_out_aa(X, Z)) → succZ_out_aa(one(X), zero(Z))
U14_aaa(X, Z, succZ_out_aa(X, Z)) → addc_out_aaa(X, b, Z)
addc_in_aaa(b, Y, Z) → U15_aaa(Y, Z, succZ_in_aa(Y, Z))
U15_aaa(Y, Z, succZ_out_aa(Y, Z)) → addc_out_aaa(b, Y, Z)
addc_in_aaa(X, Y, Z) → U16_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(zero(X), zero(Y), one(Z)) → U23_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), zero(Y), one(Z))
addC_in_aaa(zero(X), one(Y), zero(Z)) → U24_aaa(X, Y, Z, addX_in_aaa(X, Y, Z))
addX_in_aaa(zero(X), b, one(X)) → U17_aaa(X, binaryZ_in_a(X))
U17_aaa(X, binaryZ_out_a(X)) → addX_out_aaa(zero(X), b, one(X))
addX_in_aaa(one(X), b, zero(Z)) → U18_aaa(X, Z, succ_in_aa(X, Z))
U18_aaa(X, Z, succ_out_aa(X, Z)) → addX_out_aaa(one(X), b, zero(Z))
addX_in_aaa(X, Y, Z) → U19_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), zero(Y), zero(Z)) → U25_aaa(X, Y, Z, addY_in_aaa(X, Y, Z))
addY_in_aaa(b, zero(Y), one(Y)) → U20_aaa(Y, binaryZ_in_a(Y))
U20_aaa(Y, binaryZ_out_a(Y)) → addY_out_aaa(b, zero(Y), one(Y))
addY_in_aaa(b, one(Y), zero(Z)) → U21_aaa(Y, Z, succ_in_aa(Y, Z))
U21_aaa(Y, Z, succ_out_aa(Y, Z)) → addY_out_aaa(b, one(Y), zero(Z))
addY_in_aaa(X, Y, Z) → U22_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), one(Y), one(Z)) → U26_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
U26_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), one(Y), one(Z))
U22_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addY_out_aaa(X, Y, Z)
U25_aaa(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), zero(Y), zero(Z))
U19_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addX_out_aaa(X, Y, Z)
U24_aaa(X, Y, Z, addX_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), one(Y), zero(Z))
U16_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addc_out_aaa(X, Y, Z)
U13_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), one(Y), zero(Z))
U9_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addy_out_aaa(X, Y, Z)
U12_aaa(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), zero(Y), one(Z))
U6_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addx_out_aaa(X, Y, Z)
U11_aaa(X, Y, Z, addx_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), one(Y), one(Z))
U10_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), zero(Y), zero(Z))
U10_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aga(zero(X), zero(Y), zero(Z))
addz_in_aga(zero(X), one(Y), one(Z)) → U11_aga(X, Y, Z, addx_in_aga(X, Y, Z))
addx_in_aga(one(X), b, one(X)) → U4_aga(X, binary_in_a(X))
U4_aga(X, binary_out_a(X)) → addx_out_aga(one(X), b, one(X))
addx_in_aga(zero(X), b, zero(X)) → U5_aga(X, binaryZ_in_a(X))
U5_aga(X, binaryZ_out_a(X)) → addx_out_aga(zero(X), b, zero(X))
addx_in_aga(X, Y, Z) → U6_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(one(X), zero(Y), one(Z)) → U12_aga(X, Y, Z, addy_in_aaa(X, Y, Z))
U12_aga(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aga(one(X), zero(Y), one(Z))
addz_in_aga(one(X), one(Y), zero(Z)) → U13_aga(X, Y, Z, addc_in_aga(X, Y, Z))
addc_in_aga(b, b, one(b)) → addc_out_aga(b, b, one(b))
addc_in_aga(X, b, Z) → U14_aga(X, Z, succZ_in_aa(X, Z))
U14_aga(X, Z, succZ_out_aa(X, Z)) → addc_out_aga(X, b, Z)
addc_in_aga(b, Y, Z) → U15_aga(Y, Z, succZ_in_ga(Y, Z))
succZ_in_ga(zero(X), one(X)) → U33_ga(X, binaryZ_in_a(X))
U33_ga(X, binaryZ_out_a(X)) → succZ_out_ga(zero(X), one(X))
succZ_in_ga(one(X), zero(Z)) → U34_ga(X, Z, succ_in_ga(X, Z))
succ_in_ga(b, one(b)) → succ_out_ga(b, one(b))
succ_in_ga(zero(X), one(X)) → U31_ga(X, binaryZ_in_a(X))
U31_ga(X, binaryZ_out_a(X)) → succ_out_ga(zero(X), one(X))
succ_in_ga(one(X), zero(Z)) → U32_ga(X, Z, succ_in_ga(X, Z))
U32_ga(X, Z, succ_out_ga(X, Z)) → succ_out_ga(one(X), zero(Z))
U34_ga(X, Z, succ_out_ga(X, Z)) → succZ_out_ga(one(X), zero(Z))
U15_aga(Y, Z, succZ_out_ga(Y, Z)) → addc_out_aga(b, Y, Z)
addc_in_aga(X, Y, Z) → U16_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(zero(X), zero(Y), one(Z)) → U23_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aga(zero(X), zero(Y), one(Z))
addC_in_aga(zero(X), one(Y), zero(Z)) → U24_aga(X, Y, Z, addX_in_aga(X, Y, Z))
addX_in_aga(zero(X), b, one(X)) → U17_aga(X, binaryZ_in_a(X))
U17_aga(X, binaryZ_out_a(X)) → addX_out_aga(zero(X), b, one(X))
addX_in_aga(one(X), b, zero(Z)) → U18_aga(X, Z, succ_in_aa(X, Z))
U18_aga(X, Z, succ_out_aa(X, Z)) → addX_out_aga(one(X), b, zero(Z))
addX_in_aga(X, Y, Z) → U19_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(one(X), zero(Y), zero(Z)) → U25_aga(X, Y, Z, addY_in_aaa(X, Y, Z))
U25_aga(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aga(one(X), zero(Y), zero(Z))
addC_in_aga(one(X), one(Y), one(Z)) → U26_aga(X, Y, Z, addc_in_aga(X, Y, Z))
U26_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addC_out_aga(one(X), one(Y), one(Z))
U19_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addX_out_aga(X, Y, Z)
U24_aga(X, Y, Z, addX_out_aga(X, Y, Z)) → addC_out_aga(zero(X), one(Y), zero(Z))
U16_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addc_out_aga(X, Y, Z)
U13_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_aga(one(X), one(Y), zero(Z))
U6_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → addx_out_aga(X, Y, Z)
U11_aga(X, Y, Z, addx_out_aga(X, Y, Z)) → addz_out_aga(zero(X), one(Y), one(Z))
U3_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → add_out_aga(X, Y, Z)
U37_aaa(R, S, RSS, add_out_aga(S, zero(RS), RSS)) → times_out_aaa(one(R), S, RSS)
U35_aaa(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aaa(zero(R), S, zero(RS))
U35_aag(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aag(zero(R), S, zero(RS))
times_in_aag(one(R), S, RSS) → U36_aag(R, S, RSS, times_in_aaa(R, S, RS))
U36_aag(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aag(R, S, RSS, add_in_agg(S, zero(RS), RSS))
add_in_agg(b, b, b) → add_out_agg(b, b, b)
add_in_agg(X, b, X) → U1_agg(X, binaryZ_in_g(X))
U1_agg(X, binaryZ_out_g(X)) → add_out_agg(X, b, X)
add_in_agg(b, Y, Y) → U2_agg(Y, binaryZ_in_g(Y))
U2_agg(Y, binaryZ_out_g(Y)) → add_out_agg(b, Y, Y)
add_in_agg(X, Y, Z) → U3_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(zero(X), zero(Y), zero(Z)) → U10_agg(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_agg(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_agg(zero(X), zero(Y), zero(Z))
addz_in_agg(zero(X), one(Y), one(Z)) → U11_agg(X, Y, Z, addx_in_agg(X, Y, Z))
addx_in_agg(one(X), b, one(X)) → U4_agg(X, binary_in_g(X))
U4_agg(X, binary_out_g(X)) → addx_out_agg(one(X), b, one(X))
addx_in_agg(zero(X), b, zero(X)) → U5_agg(X, binaryZ_in_a(X))
U5_agg(X, binaryZ_out_a(X)) → addx_out_agg(zero(X), b, zero(X))
addx_in_agg(X, Y, Z) → U6_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(one(X), zero(Y), one(Z)) → U12_agg(X, Y, Z, addy_in_aag(X, Y, Z))
addy_in_aag(b, one(Y), one(Y)) → U7_aag(Y, binary_in_g(Y))
U7_aag(Y, binary_out_g(Y)) → addy_out_aag(b, one(Y), one(Y))
addy_in_aag(b, zero(Y), zero(Y)) → U8_aag(Y, binaryZ_in_a(Y))
U8_aag(Y, binaryZ_out_a(Y)) → addy_out_aag(b, zero(Y), zero(Y))
addy_in_aag(X, Y, Z) → U9_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(zero(X), zero(Y), zero(Z)) → U10_aag(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_aag(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aag(zero(X), zero(Y), zero(Z))
addz_in_aag(zero(X), one(Y), one(Z)) → U11_aag(X, Y, Z, addx_in_aag(X, Y, Z))
addx_in_aag(one(X), b, one(X)) → U4_aag(X, binary_in_g(X))
U4_aag(X, binary_out_g(X)) → addx_out_aag(one(X), b, one(X))
addx_in_aag(zero(X), b, zero(X)) → U5_aag(X, binaryZ_in_a(X))
U5_aag(X, binaryZ_out_a(X)) → addx_out_aag(zero(X), b, zero(X))
addx_in_aag(X, Y, Z) → U6_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(one(X), zero(Y), one(Z)) → U12_aag(X, Y, Z, addy_in_aag(X, Y, Z))
U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_aag(one(X), zero(Y), one(Z))
addz_in_aag(one(X), one(Y), zero(Z)) → U13_aag(X, Y, Z, addc_in_aaa(X, Y, Z))
U13_aag(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aag(one(X), one(Y), zero(Z))
U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addx_out_aag(X, Y, Z)
U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) → addz_out_aag(zero(X), one(Y), one(Z))
U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addy_out_aag(X, Y, Z)
U12_agg(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_agg(one(X), zero(Y), one(Z))
addz_in_agg(one(X), one(Y), zero(Z)) → U13_agg(X, Y, Z, addc_in_aga(X, Y, Z))
U13_agg(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_agg(one(X), one(Y), zero(Z))
U6_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → addx_out_agg(X, Y, Z)
U11_agg(X, Y, Z, addx_out_agg(X, Y, Z)) → addz_out_agg(zero(X), one(Y), one(Z))
U3_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → add_out_agg(X, Y, Z)
U37_aag(R, S, RSS, add_out_agg(S, zero(RS), RSS)) → times_out_aag(one(R), S, RSS)
TIMES_IN_AAG(zero(R), S, zero(RS)) → U35_AAG(R, S, RS, times_in_aaa(R, S, RS))
TIMES_IN_AAG(zero(R), S, zero(RS)) → TIMES_IN_AAA(R, S, RS)
TIMES_IN_AAA(zero(R), S, zero(RS)) → U35_AAA(R, S, RS, times_in_aaa(R, S, RS))
TIMES_IN_AAA(zero(R), S, zero(RS)) → TIMES_IN_AAA(R, S, RS)
TIMES_IN_AAA(one(R), S, RSS) → U36_AAA(R, S, RSS, times_in_aaa(R, S, RS))
TIMES_IN_AAA(one(R), S, RSS) → TIMES_IN_AAA(R, S, RS)
U36_AAA(R, S, RSS, times_out_aaa(R, S, RS)) → U37_AAA(R, S, RSS, add_in_aga(S, zero(RS), RSS))
U36_AAA(R, S, RSS, times_out_aaa(R, S, RS)) → ADD_IN_AGA(S, zero(RS), RSS)
ADD_IN_AGA(X, b, X) → U1_AGA(X, binaryZ_in_a(X))
ADD_IN_AGA(X, b, X) → BINARYZ_IN_A(X)
BINARYZ_IN_A(zero(X)) → U29_A(X, binaryZ_in_a(X))
BINARYZ_IN_A(zero(X)) → BINARYZ_IN_A(X)
BINARYZ_IN_A(one(X)) → U30_A(X, binary_in_a(X))
BINARYZ_IN_A(one(X)) → BINARY_IN_A(X)
BINARY_IN_A(zero(X)) → U27_A(X, binaryZ_in_a(X))
BINARY_IN_A(zero(X)) → BINARYZ_IN_A(X)
BINARY_IN_A(one(X)) → U28_A(X, binary_in_a(X))
BINARY_IN_A(one(X)) → BINARY_IN_A(X)
ADD_IN_AGA(b, Y, Y) → U2_AGA(Y, binaryZ_in_g(Y))
ADD_IN_AGA(b, Y, Y) → BINARYZ_IN_G(Y)
BINARYZ_IN_G(zero(X)) → U29_G(X, binaryZ_in_a(X))
BINARYZ_IN_G(zero(X)) → BINARYZ_IN_A(X)
BINARYZ_IN_G(one(X)) → U30_G(X, binary_in_g(X))
BINARYZ_IN_G(one(X)) → BINARY_IN_G(X)
BINARY_IN_G(zero(X)) → U27_G(X, binaryZ_in_a(X))
BINARY_IN_G(zero(X)) → BINARYZ_IN_A(X)
BINARY_IN_G(one(X)) → U28_G(X, binary_in_g(X))
BINARY_IN_G(one(X)) → BINARY_IN_G(X)
ADD_IN_AGA(X, Y, Z) → U3_AGA(X, Y, Z, addz_in_aga(X, Y, Z))
ADD_IN_AGA(X, Y, Z) → ADDZ_IN_AGA(X, Y, Z)
ADDZ_IN_AGA(zero(X), zero(Y), zero(Z)) → U10_AGA(X, Y, Z, addz_in_aaa(X, Y, Z))
ADDZ_IN_AGA(zero(X), zero(Y), zero(Z)) → ADDZ_IN_AAA(X, Y, Z)
ADDZ_IN_AAA(zero(X), zero(Y), zero(Z)) → U10_AAA(X, Y, Z, addz_in_aaa(X, Y, Z))
ADDZ_IN_AAA(zero(X), zero(Y), zero(Z)) → ADDZ_IN_AAA(X, Y, Z)
ADDZ_IN_AAA(zero(X), one(Y), one(Z)) → U11_AAA(X, Y, Z, addx_in_aaa(X, Y, Z))
ADDZ_IN_AAA(zero(X), one(Y), one(Z)) → ADDX_IN_AAA(X, Y, Z)
ADDX_IN_AAA(one(X), b, one(X)) → U4_AAA(X, binary_in_a(X))
ADDX_IN_AAA(one(X), b, one(X)) → BINARY_IN_A(X)
ADDX_IN_AAA(zero(X), b, zero(X)) → U5_AAA(X, binaryZ_in_a(X))
ADDX_IN_AAA(zero(X), b, zero(X)) → BINARYZ_IN_A(X)
ADDX_IN_AAA(X, Y, Z) → U6_AAA(X, Y, Z, addz_in_aaa(X, Y, Z))
ADDX_IN_AAA(X, Y, Z) → ADDZ_IN_AAA(X, Y, Z)
ADDZ_IN_AAA(one(X), zero(Y), one(Z)) → U12_AAA(X, Y, Z, addy_in_aaa(X, Y, Z))
ADDZ_IN_AAA(one(X), zero(Y), one(Z)) → ADDY_IN_AAA(X, Y, Z)
ADDY_IN_AAA(b, one(Y), one(Y)) → U7_AAA(Y, binary_in_a(Y))
ADDY_IN_AAA(b, one(Y), one(Y)) → BINARY_IN_A(Y)
ADDY_IN_AAA(b, zero(Y), zero(Y)) → U8_AAA(Y, binaryZ_in_a(Y))
ADDY_IN_AAA(b, zero(Y), zero(Y)) → BINARYZ_IN_A(Y)
ADDY_IN_AAA(X, Y, Z) → U9_AAA(X, Y, Z, addz_in_aaa(X, Y, Z))
ADDY_IN_AAA(X, Y, Z) → ADDZ_IN_AAA(X, Y, Z)
ADDZ_IN_AAA(one(X), one(Y), zero(Z)) → U13_AAA(X, Y, Z, addc_in_aaa(X, Y, Z))
ADDZ_IN_AAA(one(X), one(Y), zero(Z)) → ADDC_IN_AAA(X, Y, Z)
ADDC_IN_AAA(X, b, Z) → U14_AAA(X, Z, succZ_in_aa(X, Z))
ADDC_IN_AAA(X, b, Z) → SUCCZ_IN_AA(X, Z)
SUCCZ_IN_AA(zero(X), one(X)) → U33_AA(X, binaryZ_in_a(X))
SUCCZ_IN_AA(zero(X), one(X)) → BINARYZ_IN_A(X)
SUCCZ_IN_AA(one(X), zero(Z)) → U34_AA(X, Z, succ_in_aa(X, Z))
SUCCZ_IN_AA(one(X), zero(Z)) → SUCC_IN_AA(X, Z)
SUCC_IN_AA(zero(X), one(X)) → U31_AA(X, binaryZ_in_a(X))
SUCC_IN_AA(zero(X), one(X)) → BINARYZ_IN_A(X)
SUCC_IN_AA(one(X), zero(Z)) → U32_AA(X, Z, succ_in_aa(X, Z))
SUCC_IN_AA(one(X), zero(Z)) → SUCC_IN_AA(X, Z)
ADDC_IN_AAA(b, Y, Z) → U15_AAA(Y, Z, succZ_in_aa(Y, Z))
ADDC_IN_AAA(b, Y, Z) → SUCCZ_IN_AA(Y, Z)
ADDC_IN_AAA(X, Y, Z) → U16_AAA(X, Y, Z, addC_in_aaa(X, Y, Z))
ADDC_IN_AAA(X, Y, Z) → ADDC_IN_AAA1(X, Y, Z)
ADDC_IN_AAA1(zero(X), zero(Y), one(Z)) → U23_AAA(X, Y, Z, addz_in_aaa(X, Y, Z))
ADDC_IN_AAA1(zero(X), zero(Y), one(Z)) → ADDZ_IN_AAA(X, Y, Z)
ADDC_IN_AAA1(zero(X), one(Y), zero(Z)) → U24_AAA(X, Y, Z, addX_in_aaa(X, Y, Z))
ADDC_IN_AAA1(zero(X), one(Y), zero(Z)) → ADDX_IN_AAA1(X, Y, Z)
ADDX_IN_AAA1(zero(X), b, one(X)) → U17_AAA(X, binaryZ_in_a(X))
ADDX_IN_AAA1(zero(X), b, one(X)) → BINARYZ_IN_A(X)
ADDX_IN_AAA1(one(X), b, zero(Z)) → U18_AAA(X, Z, succ_in_aa(X, Z))
ADDX_IN_AAA1(one(X), b, zero(Z)) → SUCC_IN_AA(X, Z)
ADDX_IN_AAA1(X, Y, Z) → U19_AAA(X, Y, Z, addC_in_aaa(X, Y, Z))
ADDX_IN_AAA1(X, Y, Z) → ADDC_IN_AAA1(X, Y, Z)
ADDC_IN_AAA1(one(X), zero(Y), zero(Z)) → U25_AAA(X, Y, Z, addY_in_aaa(X, Y, Z))
ADDC_IN_AAA1(one(X), zero(Y), zero(Z)) → ADDY_IN_AAA1(X, Y, Z)
ADDY_IN_AAA1(b, zero(Y), one(Y)) → U20_AAA(Y, binaryZ_in_a(Y))
ADDY_IN_AAA1(b, zero(Y), one(Y)) → BINARYZ_IN_A(Y)
ADDY_IN_AAA1(b, one(Y), zero(Z)) → U21_AAA(Y, Z, succ_in_aa(Y, Z))
ADDY_IN_AAA1(b, one(Y), zero(Z)) → SUCC_IN_AA(Y, Z)
ADDY_IN_AAA1(X, Y, Z) → U22_AAA(X, Y, Z, addC_in_aaa(X, Y, Z))
ADDY_IN_AAA1(X, Y, Z) → ADDC_IN_AAA1(X, Y, Z)
ADDC_IN_AAA1(one(X), one(Y), one(Z)) → U26_AAA(X, Y, Z, addc_in_aaa(X, Y, Z))
ADDC_IN_AAA1(one(X), one(Y), one(Z)) → ADDC_IN_AAA(X, Y, Z)
ADDZ_IN_AGA(zero(X), one(Y), one(Z)) → U11_AGA(X, Y, Z, addx_in_aga(X, Y, Z))
ADDZ_IN_AGA(zero(X), one(Y), one(Z)) → ADDX_IN_AGA(X, Y, Z)
ADDX_IN_AGA(one(X), b, one(X)) → U4_AGA(X, binary_in_a(X))
ADDX_IN_AGA(one(X), b, one(X)) → BINARY_IN_A(X)
ADDX_IN_AGA(zero(X), b, zero(X)) → U5_AGA(X, binaryZ_in_a(X))
ADDX_IN_AGA(zero(X), b, zero(X)) → BINARYZ_IN_A(X)
ADDX_IN_AGA(X, Y, Z) → U6_AGA(X, Y, Z, addz_in_aga(X, Y, Z))
ADDX_IN_AGA(X, Y, Z) → ADDZ_IN_AGA(X, Y, Z)
ADDZ_IN_AGA(one(X), zero(Y), one(Z)) → U12_AGA(X, Y, Z, addy_in_aaa(X, Y, Z))
ADDZ_IN_AGA(one(X), zero(Y), one(Z)) → ADDY_IN_AAA(X, Y, Z)
ADDZ_IN_AGA(one(X), one(Y), zero(Z)) → U13_AGA(X, Y, Z, addc_in_aga(X, Y, Z))
ADDZ_IN_AGA(one(X), one(Y), zero(Z)) → ADDC_IN_AGA(X, Y, Z)
ADDC_IN_AGA(X, b, Z) → U14_AGA(X, Z, succZ_in_aa(X, Z))
ADDC_IN_AGA(X, b, Z) → SUCCZ_IN_AA(X, Z)
ADDC_IN_AGA(b, Y, Z) → U15_AGA(Y, Z, succZ_in_ga(Y, Z))
ADDC_IN_AGA(b, Y, Z) → SUCCZ_IN_GA(Y, Z)
SUCCZ_IN_GA(zero(X), one(X)) → U33_GA(X, binaryZ_in_a(X))
SUCCZ_IN_GA(zero(X), one(X)) → BINARYZ_IN_A(X)
SUCCZ_IN_GA(one(X), zero(Z)) → U34_GA(X, Z, succ_in_ga(X, Z))
SUCCZ_IN_GA(one(X), zero(Z)) → SUCC_IN_GA(X, Z)
SUCC_IN_GA(zero(X), one(X)) → U31_GA(X, binaryZ_in_a(X))
SUCC_IN_GA(zero(X), one(X)) → BINARYZ_IN_A(X)
SUCC_IN_GA(one(X), zero(Z)) → U32_GA(X, Z, succ_in_ga(X, Z))
SUCC_IN_GA(one(X), zero(Z)) → SUCC_IN_GA(X, Z)
ADDC_IN_AGA(X, Y, Z) → U16_AGA(X, Y, Z, addC_in_aga(X, Y, Z))
ADDC_IN_AGA(X, Y, Z) → ADDC_IN_AGA1(X, Y, Z)
ADDC_IN_AGA1(zero(X), zero(Y), one(Z)) → U23_AGA(X, Y, Z, addz_in_aaa(X, Y, Z))
ADDC_IN_AGA1(zero(X), zero(Y), one(Z)) → ADDZ_IN_AAA(X, Y, Z)
ADDC_IN_AGA1(zero(X), one(Y), zero(Z)) → U24_AGA(X, Y, Z, addX_in_aga(X, Y, Z))
ADDC_IN_AGA1(zero(X), one(Y), zero(Z)) → ADDX_IN_AGA1(X, Y, Z)
ADDX_IN_AGA1(zero(X), b, one(X)) → U17_AGA(X, binaryZ_in_a(X))
ADDX_IN_AGA1(zero(X), b, one(X)) → BINARYZ_IN_A(X)
ADDX_IN_AGA1(one(X), b, zero(Z)) → U18_AGA(X, Z, succ_in_aa(X, Z))
ADDX_IN_AGA1(one(X), b, zero(Z)) → SUCC_IN_AA(X, Z)
ADDX_IN_AGA1(X, Y, Z) → U19_AGA(X, Y, Z, addC_in_aga(X, Y, Z))
ADDX_IN_AGA1(X, Y, Z) → ADDC_IN_AGA1(X, Y, Z)
ADDC_IN_AGA1(one(X), zero(Y), zero(Z)) → U25_AGA(X, Y, Z, addY_in_aaa(X, Y, Z))
ADDC_IN_AGA1(one(X), zero(Y), zero(Z)) → ADDY_IN_AAA1(X, Y, Z)
ADDC_IN_AGA1(one(X), one(Y), one(Z)) → U26_AGA(X, Y, Z, addc_in_aga(X, Y, Z))
ADDC_IN_AGA1(one(X), one(Y), one(Z)) → ADDC_IN_AGA(X, Y, Z)
TIMES_IN_AAG(one(R), S, RSS) → U36_AAG(R, S, RSS, times_in_aaa(R, S, RS))
TIMES_IN_AAG(one(R), S, RSS) → TIMES_IN_AAA(R, S, RS)
U36_AAG(R, S, RSS, times_out_aaa(R, S, RS)) → U37_AAG(R, S, RSS, add_in_agg(S, zero(RS), RSS))
U36_AAG(R, S, RSS, times_out_aaa(R, S, RS)) → ADD_IN_AGG(S, zero(RS), RSS)
ADD_IN_AGG(X, b, X) → U1_AGG(X, binaryZ_in_g(X))
ADD_IN_AGG(X, b, X) → BINARYZ_IN_G(X)
ADD_IN_AGG(b, Y, Y) → U2_AGG(Y, binaryZ_in_g(Y))
ADD_IN_AGG(b, Y, Y) → BINARYZ_IN_G(Y)
ADD_IN_AGG(X, Y, Z) → U3_AGG(X, Y, Z, addz_in_agg(X, Y, Z))
ADD_IN_AGG(X, Y, Z) → ADDZ_IN_AGG(X, Y, Z)
ADDZ_IN_AGG(zero(X), zero(Y), zero(Z)) → U10_AGG(X, Y, Z, addz_in_aaa(X, Y, Z))
ADDZ_IN_AGG(zero(X), zero(Y), zero(Z)) → ADDZ_IN_AAA(X, Y, Z)
ADDZ_IN_AGG(zero(X), one(Y), one(Z)) → U11_AGG(X, Y, Z, addx_in_agg(X, Y, Z))
ADDZ_IN_AGG(zero(X), one(Y), one(Z)) → ADDX_IN_AGG(X, Y, Z)
ADDX_IN_AGG(one(X), b, one(X)) → U4_AGG(X, binary_in_g(X))
ADDX_IN_AGG(one(X), b, one(X)) → BINARY_IN_G(X)
ADDX_IN_AGG(zero(X), b, zero(X)) → U5_AGG(X, binaryZ_in_a(X))
ADDX_IN_AGG(zero(X), b, zero(X)) → BINARYZ_IN_A(X)
ADDX_IN_AGG(X, Y, Z) → U6_AGG(X, Y, Z, addz_in_agg(X, Y, Z))
ADDX_IN_AGG(X, Y, Z) → ADDZ_IN_AGG(X, Y, Z)
ADDZ_IN_AGG(one(X), zero(Y), one(Z)) → U12_AGG(X, Y, Z, addy_in_aag(X, Y, Z))
ADDZ_IN_AGG(one(X), zero(Y), one(Z)) → ADDY_IN_AAG(X, Y, Z)
ADDY_IN_AAG(b, one(Y), one(Y)) → U7_AAG(Y, binary_in_g(Y))
ADDY_IN_AAG(b, one(Y), one(Y)) → BINARY_IN_G(Y)
ADDY_IN_AAG(b, zero(Y), zero(Y)) → U8_AAG(Y, binaryZ_in_a(Y))
ADDY_IN_AAG(b, zero(Y), zero(Y)) → BINARYZ_IN_A(Y)
ADDY_IN_AAG(X, Y, Z) → U9_AAG(X, Y, Z, addz_in_aag(X, Y, Z))
ADDY_IN_AAG(X, Y, Z) → ADDZ_IN_AAG(X, Y, Z)
ADDZ_IN_AAG(zero(X), zero(Y), zero(Z)) → U10_AAG(X, Y, Z, addz_in_aaa(X, Y, Z))
ADDZ_IN_AAG(zero(X), zero(Y), zero(Z)) → ADDZ_IN_AAA(X, Y, Z)
ADDZ_IN_AAG(zero(X), one(Y), one(Z)) → U11_AAG(X, Y, Z, addx_in_aag(X, Y, Z))
ADDZ_IN_AAG(zero(X), one(Y), one(Z)) → ADDX_IN_AAG(X, Y, Z)
ADDX_IN_AAG(one(X), b, one(X)) → U4_AAG(X, binary_in_g(X))
ADDX_IN_AAG(one(X), b, one(X)) → BINARY_IN_G(X)
ADDX_IN_AAG(zero(X), b, zero(X)) → U5_AAG(X, binaryZ_in_a(X))
ADDX_IN_AAG(zero(X), b, zero(X)) → BINARYZ_IN_A(X)
ADDX_IN_AAG(X, Y, Z) → U6_AAG(X, Y, Z, addz_in_aag(X, Y, Z))
ADDX_IN_AAG(X, Y, Z) → ADDZ_IN_AAG(X, Y, Z)
ADDZ_IN_AAG(one(X), zero(Y), one(Z)) → U12_AAG(X, Y, Z, addy_in_aag(X, Y, Z))
ADDZ_IN_AAG(one(X), zero(Y), one(Z)) → ADDY_IN_AAG(X, Y, Z)
ADDZ_IN_AAG(one(X), one(Y), zero(Z)) → U13_AAG(X, Y, Z, addc_in_aaa(X, Y, Z))
ADDZ_IN_AAG(one(X), one(Y), zero(Z)) → ADDC_IN_AAA(X, Y, Z)
ADDZ_IN_AGG(one(X), one(Y), zero(Z)) → U13_AGG(X, Y, Z, addc_in_aga(X, Y, Z))
ADDZ_IN_AGG(one(X), one(Y), zero(Z)) → ADDC_IN_AGA(X, Y, Z)
times_in_aag(one(b), X, X) → times_out_aag(one(b), X, X)
times_in_aag(zero(R), S, zero(RS)) → U35_aag(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(b), X, X) → times_out_aaa(one(b), X, X)
times_in_aaa(zero(R), S, zero(RS)) → U35_aaa(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(R), S, RSS) → U36_aaa(R, S, RSS, times_in_aaa(R, S, RS))
U36_aaa(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aaa(R, S, RSS, add_in_aga(S, zero(RS), RSS))
add_in_aga(b, b, b) → add_out_aga(b, b, b)
add_in_aga(X, b, X) → U1_aga(X, binaryZ_in_a(X))
binaryZ_in_a(zero(X)) → U29_a(X, binaryZ_in_a(X))
binaryZ_in_a(one(X)) → U30_a(X, binary_in_a(X))
binary_in_a(b) → binary_out_a(b)
binary_in_a(zero(X)) → U27_a(X, binaryZ_in_a(X))
U27_a(X, binaryZ_out_a(X)) → binary_out_a(zero(X))
binary_in_a(one(X)) → U28_a(X, binary_in_a(X))
U28_a(X, binary_out_a(X)) → binary_out_a(one(X))
U30_a(X, binary_out_a(X)) → binaryZ_out_a(one(X))
U29_a(X, binaryZ_out_a(X)) → binaryZ_out_a(zero(X))
U1_aga(X, binaryZ_out_a(X)) → add_out_aga(X, b, X)
add_in_aga(b, Y, Y) → U2_aga(Y, binaryZ_in_g(Y))
binaryZ_in_g(zero(X)) → U29_g(X, binaryZ_in_a(X))
U29_g(X, binaryZ_out_a(X)) → binaryZ_out_g(zero(X))
binaryZ_in_g(one(X)) → U30_g(X, binary_in_g(X))
binary_in_g(b) → binary_out_g(b)
binary_in_g(zero(X)) → U27_g(X, binaryZ_in_a(X))
U27_g(X, binaryZ_out_a(X)) → binary_out_g(zero(X))
binary_in_g(one(X)) → U28_g(X, binary_in_g(X))
U28_g(X, binary_out_g(X)) → binary_out_g(one(X))
U30_g(X, binary_out_g(X)) → binaryZ_out_g(one(X))
U2_aga(Y, binaryZ_out_g(Y)) → add_out_aga(b, Y, Y)
add_in_aga(X, Y, Z) → U3_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(zero(X), zero(Y), zero(Z)) → U10_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), zero(Y), zero(Z)) → U10_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), one(Y), one(Z)) → U11_aaa(X, Y, Z, addx_in_aaa(X, Y, Z))
addx_in_aaa(one(X), b, one(X)) → U4_aaa(X, binary_in_a(X))
U4_aaa(X, binary_out_a(X)) → addx_out_aaa(one(X), b, one(X))
addx_in_aaa(zero(X), b, zero(X)) → U5_aaa(X, binaryZ_in_a(X))
U5_aaa(X, binaryZ_out_a(X)) → addx_out_aaa(zero(X), b, zero(X))
addx_in_aaa(X, Y, Z) → U6_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), zero(Y), one(Z)) → U12_aaa(X, Y, Z, addy_in_aaa(X, Y, Z))
addy_in_aaa(b, one(Y), one(Y)) → U7_aaa(Y, binary_in_a(Y))
U7_aaa(Y, binary_out_a(Y)) → addy_out_aaa(b, one(Y), one(Y))
addy_in_aaa(b, zero(Y), zero(Y)) → U8_aaa(Y, binaryZ_in_a(Y))
U8_aaa(Y, binaryZ_out_a(Y)) → addy_out_aaa(b, zero(Y), zero(Y))
addy_in_aaa(X, Y, Z) → U9_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), one(Y), zero(Z)) → U13_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
addc_in_aaa(b, b, one(b)) → addc_out_aaa(b, b, one(b))
addc_in_aaa(X, b, Z) → U14_aaa(X, Z, succZ_in_aa(X, Z))
succZ_in_aa(zero(X), one(X)) → U33_aa(X, binaryZ_in_a(X))
U33_aa(X, binaryZ_out_a(X)) → succZ_out_aa(zero(X), one(X))
succZ_in_aa(one(X), zero(Z)) → U34_aa(X, Z, succ_in_aa(X, Z))
succ_in_aa(b, one(b)) → succ_out_aa(b, one(b))
succ_in_aa(zero(X), one(X)) → U31_aa(X, binaryZ_in_a(X))
U31_aa(X, binaryZ_out_a(X)) → succ_out_aa(zero(X), one(X))
succ_in_aa(one(X), zero(Z)) → U32_aa(X, Z, succ_in_aa(X, Z))
U32_aa(X, Z, succ_out_aa(X, Z)) → succ_out_aa(one(X), zero(Z))
U34_aa(X, Z, succ_out_aa(X, Z)) → succZ_out_aa(one(X), zero(Z))
U14_aaa(X, Z, succZ_out_aa(X, Z)) → addc_out_aaa(X, b, Z)
addc_in_aaa(b, Y, Z) → U15_aaa(Y, Z, succZ_in_aa(Y, Z))
U15_aaa(Y, Z, succZ_out_aa(Y, Z)) → addc_out_aaa(b, Y, Z)
addc_in_aaa(X, Y, Z) → U16_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(zero(X), zero(Y), one(Z)) → U23_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), zero(Y), one(Z))
addC_in_aaa(zero(X), one(Y), zero(Z)) → U24_aaa(X, Y, Z, addX_in_aaa(X, Y, Z))
addX_in_aaa(zero(X), b, one(X)) → U17_aaa(X, binaryZ_in_a(X))
U17_aaa(X, binaryZ_out_a(X)) → addX_out_aaa(zero(X), b, one(X))
addX_in_aaa(one(X), b, zero(Z)) → U18_aaa(X, Z, succ_in_aa(X, Z))
U18_aaa(X, Z, succ_out_aa(X, Z)) → addX_out_aaa(one(X), b, zero(Z))
addX_in_aaa(X, Y, Z) → U19_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), zero(Y), zero(Z)) → U25_aaa(X, Y, Z, addY_in_aaa(X, Y, Z))
addY_in_aaa(b, zero(Y), one(Y)) → U20_aaa(Y, binaryZ_in_a(Y))
U20_aaa(Y, binaryZ_out_a(Y)) → addY_out_aaa(b, zero(Y), one(Y))
addY_in_aaa(b, one(Y), zero(Z)) → U21_aaa(Y, Z, succ_in_aa(Y, Z))
U21_aaa(Y, Z, succ_out_aa(Y, Z)) → addY_out_aaa(b, one(Y), zero(Z))
addY_in_aaa(X, Y, Z) → U22_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), one(Y), one(Z)) → U26_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
U26_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), one(Y), one(Z))
U22_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addY_out_aaa(X, Y, Z)
U25_aaa(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), zero(Y), zero(Z))
U19_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addX_out_aaa(X, Y, Z)
U24_aaa(X, Y, Z, addX_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), one(Y), zero(Z))
U16_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addc_out_aaa(X, Y, Z)
U13_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), one(Y), zero(Z))
U9_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addy_out_aaa(X, Y, Z)
U12_aaa(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), zero(Y), one(Z))
U6_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addx_out_aaa(X, Y, Z)
U11_aaa(X, Y, Z, addx_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), one(Y), one(Z))
U10_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), zero(Y), zero(Z))
U10_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aga(zero(X), zero(Y), zero(Z))
addz_in_aga(zero(X), one(Y), one(Z)) → U11_aga(X, Y, Z, addx_in_aga(X, Y, Z))
addx_in_aga(one(X), b, one(X)) → U4_aga(X, binary_in_a(X))
U4_aga(X, binary_out_a(X)) → addx_out_aga(one(X), b, one(X))
addx_in_aga(zero(X), b, zero(X)) → U5_aga(X, binaryZ_in_a(X))
U5_aga(X, binaryZ_out_a(X)) → addx_out_aga(zero(X), b, zero(X))
addx_in_aga(X, Y, Z) → U6_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(one(X), zero(Y), one(Z)) → U12_aga(X, Y, Z, addy_in_aaa(X, Y, Z))
U12_aga(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aga(one(X), zero(Y), one(Z))
addz_in_aga(one(X), one(Y), zero(Z)) → U13_aga(X, Y, Z, addc_in_aga(X, Y, Z))
addc_in_aga(b, b, one(b)) → addc_out_aga(b, b, one(b))
addc_in_aga(X, b, Z) → U14_aga(X, Z, succZ_in_aa(X, Z))
U14_aga(X, Z, succZ_out_aa(X, Z)) → addc_out_aga(X, b, Z)
addc_in_aga(b, Y, Z) → U15_aga(Y, Z, succZ_in_ga(Y, Z))
succZ_in_ga(zero(X), one(X)) → U33_ga(X, binaryZ_in_a(X))
U33_ga(X, binaryZ_out_a(X)) → succZ_out_ga(zero(X), one(X))
succZ_in_ga(one(X), zero(Z)) → U34_ga(X, Z, succ_in_ga(X, Z))
succ_in_ga(b, one(b)) → succ_out_ga(b, one(b))
succ_in_ga(zero(X), one(X)) → U31_ga(X, binaryZ_in_a(X))
U31_ga(X, binaryZ_out_a(X)) → succ_out_ga(zero(X), one(X))
succ_in_ga(one(X), zero(Z)) → U32_ga(X, Z, succ_in_ga(X, Z))
U32_ga(X, Z, succ_out_ga(X, Z)) → succ_out_ga(one(X), zero(Z))
U34_ga(X, Z, succ_out_ga(X, Z)) → succZ_out_ga(one(X), zero(Z))
U15_aga(Y, Z, succZ_out_ga(Y, Z)) → addc_out_aga(b, Y, Z)
addc_in_aga(X, Y, Z) → U16_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(zero(X), zero(Y), one(Z)) → U23_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aga(zero(X), zero(Y), one(Z))
addC_in_aga(zero(X), one(Y), zero(Z)) → U24_aga(X, Y, Z, addX_in_aga(X, Y, Z))
addX_in_aga(zero(X), b, one(X)) → U17_aga(X, binaryZ_in_a(X))
U17_aga(X, binaryZ_out_a(X)) → addX_out_aga(zero(X), b, one(X))
addX_in_aga(one(X), b, zero(Z)) → U18_aga(X, Z, succ_in_aa(X, Z))
U18_aga(X, Z, succ_out_aa(X, Z)) → addX_out_aga(one(X), b, zero(Z))
addX_in_aga(X, Y, Z) → U19_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(one(X), zero(Y), zero(Z)) → U25_aga(X, Y, Z, addY_in_aaa(X, Y, Z))
U25_aga(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aga(one(X), zero(Y), zero(Z))
addC_in_aga(one(X), one(Y), one(Z)) → U26_aga(X, Y, Z, addc_in_aga(X, Y, Z))
U26_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addC_out_aga(one(X), one(Y), one(Z))
U19_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addX_out_aga(X, Y, Z)
U24_aga(X, Y, Z, addX_out_aga(X, Y, Z)) → addC_out_aga(zero(X), one(Y), zero(Z))
U16_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addc_out_aga(X, Y, Z)
U13_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_aga(one(X), one(Y), zero(Z))
U6_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → addx_out_aga(X, Y, Z)
U11_aga(X, Y, Z, addx_out_aga(X, Y, Z)) → addz_out_aga(zero(X), one(Y), one(Z))
U3_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → add_out_aga(X, Y, Z)
U37_aaa(R, S, RSS, add_out_aga(S, zero(RS), RSS)) → times_out_aaa(one(R), S, RSS)
U35_aaa(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aaa(zero(R), S, zero(RS))
U35_aag(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aag(zero(R), S, zero(RS))
times_in_aag(one(R), S, RSS) → U36_aag(R, S, RSS, times_in_aaa(R, S, RS))
U36_aag(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aag(R, S, RSS, add_in_agg(S, zero(RS), RSS))
add_in_agg(b, b, b) → add_out_agg(b, b, b)
add_in_agg(X, b, X) → U1_agg(X, binaryZ_in_g(X))
U1_agg(X, binaryZ_out_g(X)) → add_out_agg(X, b, X)
add_in_agg(b, Y, Y) → U2_agg(Y, binaryZ_in_g(Y))
U2_agg(Y, binaryZ_out_g(Y)) → add_out_agg(b, Y, Y)
add_in_agg(X, Y, Z) → U3_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(zero(X), zero(Y), zero(Z)) → U10_agg(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_agg(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_agg(zero(X), zero(Y), zero(Z))
addz_in_agg(zero(X), one(Y), one(Z)) → U11_agg(X, Y, Z, addx_in_agg(X, Y, Z))
addx_in_agg(one(X), b, one(X)) → U4_agg(X, binary_in_g(X))
U4_agg(X, binary_out_g(X)) → addx_out_agg(one(X), b, one(X))
addx_in_agg(zero(X), b, zero(X)) → U5_agg(X, binaryZ_in_a(X))
U5_agg(X, binaryZ_out_a(X)) → addx_out_agg(zero(X), b, zero(X))
addx_in_agg(X, Y, Z) → U6_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(one(X), zero(Y), one(Z)) → U12_agg(X, Y, Z, addy_in_aag(X, Y, Z))
addy_in_aag(b, one(Y), one(Y)) → U7_aag(Y, binary_in_g(Y))
U7_aag(Y, binary_out_g(Y)) → addy_out_aag(b, one(Y), one(Y))
addy_in_aag(b, zero(Y), zero(Y)) → U8_aag(Y, binaryZ_in_a(Y))
U8_aag(Y, binaryZ_out_a(Y)) → addy_out_aag(b, zero(Y), zero(Y))
addy_in_aag(X, Y, Z) → U9_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(zero(X), zero(Y), zero(Z)) → U10_aag(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_aag(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aag(zero(X), zero(Y), zero(Z))
addz_in_aag(zero(X), one(Y), one(Z)) → U11_aag(X, Y, Z, addx_in_aag(X, Y, Z))
addx_in_aag(one(X), b, one(X)) → U4_aag(X, binary_in_g(X))
U4_aag(X, binary_out_g(X)) → addx_out_aag(one(X), b, one(X))
addx_in_aag(zero(X), b, zero(X)) → U5_aag(X, binaryZ_in_a(X))
U5_aag(X, binaryZ_out_a(X)) → addx_out_aag(zero(X), b, zero(X))
addx_in_aag(X, Y, Z) → U6_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(one(X), zero(Y), one(Z)) → U12_aag(X, Y, Z, addy_in_aag(X, Y, Z))
U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_aag(one(X), zero(Y), one(Z))
addz_in_aag(one(X), one(Y), zero(Z)) → U13_aag(X, Y, Z, addc_in_aaa(X, Y, Z))
U13_aag(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aag(one(X), one(Y), zero(Z))
U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addx_out_aag(X, Y, Z)
U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) → addz_out_aag(zero(X), one(Y), one(Z))
U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addy_out_aag(X, Y, Z)
U12_agg(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_agg(one(X), zero(Y), one(Z))
addz_in_agg(one(X), one(Y), zero(Z)) → U13_agg(X, Y, Z, addc_in_aga(X, Y, Z))
U13_agg(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_agg(one(X), one(Y), zero(Z))
U6_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → addx_out_agg(X, Y, Z)
U11_agg(X, Y, Z, addx_out_agg(X, Y, Z)) → addz_out_agg(zero(X), one(Y), one(Z))
U3_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → add_out_agg(X, Y, Z)
U37_aag(R, S, RSS, add_out_agg(S, zero(RS), RSS)) → times_out_aag(one(R), S, RSS)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PrologToPiTRSProof
TIMES_IN_AAG(zero(R), S, zero(RS)) → U35_AAG(R, S, RS, times_in_aaa(R, S, RS))
TIMES_IN_AAG(zero(R), S, zero(RS)) → TIMES_IN_AAA(R, S, RS)
TIMES_IN_AAA(zero(R), S, zero(RS)) → U35_AAA(R, S, RS, times_in_aaa(R, S, RS))
TIMES_IN_AAA(zero(R), S, zero(RS)) → TIMES_IN_AAA(R, S, RS)
TIMES_IN_AAA(one(R), S, RSS) → U36_AAA(R, S, RSS, times_in_aaa(R, S, RS))
TIMES_IN_AAA(one(R), S, RSS) → TIMES_IN_AAA(R, S, RS)
U36_AAA(R, S, RSS, times_out_aaa(R, S, RS)) → U37_AAA(R, S, RSS, add_in_aga(S, zero(RS), RSS))
U36_AAA(R, S, RSS, times_out_aaa(R, S, RS)) → ADD_IN_AGA(S, zero(RS), RSS)
ADD_IN_AGA(X, b, X) → U1_AGA(X, binaryZ_in_a(X))
ADD_IN_AGA(X, b, X) → BINARYZ_IN_A(X)
BINARYZ_IN_A(zero(X)) → U29_A(X, binaryZ_in_a(X))
BINARYZ_IN_A(zero(X)) → BINARYZ_IN_A(X)
BINARYZ_IN_A(one(X)) → U30_A(X, binary_in_a(X))
BINARYZ_IN_A(one(X)) → BINARY_IN_A(X)
BINARY_IN_A(zero(X)) → U27_A(X, binaryZ_in_a(X))
BINARY_IN_A(zero(X)) → BINARYZ_IN_A(X)
BINARY_IN_A(one(X)) → U28_A(X, binary_in_a(X))
BINARY_IN_A(one(X)) → BINARY_IN_A(X)
ADD_IN_AGA(b, Y, Y) → U2_AGA(Y, binaryZ_in_g(Y))
ADD_IN_AGA(b, Y, Y) → BINARYZ_IN_G(Y)
BINARYZ_IN_G(zero(X)) → U29_G(X, binaryZ_in_a(X))
BINARYZ_IN_G(zero(X)) → BINARYZ_IN_A(X)
BINARYZ_IN_G(one(X)) → U30_G(X, binary_in_g(X))
BINARYZ_IN_G(one(X)) → BINARY_IN_G(X)
BINARY_IN_G(zero(X)) → U27_G(X, binaryZ_in_a(X))
BINARY_IN_G(zero(X)) → BINARYZ_IN_A(X)
BINARY_IN_G(one(X)) → U28_G(X, binary_in_g(X))
BINARY_IN_G(one(X)) → BINARY_IN_G(X)
ADD_IN_AGA(X, Y, Z) → U3_AGA(X, Y, Z, addz_in_aga(X, Y, Z))
ADD_IN_AGA(X, Y, Z) → ADDZ_IN_AGA(X, Y, Z)
ADDZ_IN_AGA(zero(X), zero(Y), zero(Z)) → U10_AGA(X, Y, Z, addz_in_aaa(X, Y, Z))
ADDZ_IN_AGA(zero(X), zero(Y), zero(Z)) → ADDZ_IN_AAA(X, Y, Z)
ADDZ_IN_AAA(zero(X), zero(Y), zero(Z)) → U10_AAA(X, Y, Z, addz_in_aaa(X, Y, Z))
ADDZ_IN_AAA(zero(X), zero(Y), zero(Z)) → ADDZ_IN_AAA(X, Y, Z)
ADDZ_IN_AAA(zero(X), one(Y), one(Z)) → U11_AAA(X, Y, Z, addx_in_aaa(X, Y, Z))
ADDZ_IN_AAA(zero(X), one(Y), one(Z)) → ADDX_IN_AAA(X, Y, Z)
ADDX_IN_AAA(one(X), b, one(X)) → U4_AAA(X, binary_in_a(X))
ADDX_IN_AAA(one(X), b, one(X)) → BINARY_IN_A(X)
ADDX_IN_AAA(zero(X), b, zero(X)) → U5_AAA(X, binaryZ_in_a(X))
ADDX_IN_AAA(zero(X), b, zero(X)) → BINARYZ_IN_A(X)
ADDX_IN_AAA(X, Y, Z) → U6_AAA(X, Y, Z, addz_in_aaa(X, Y, Z))
ADDX_IN_AAA(X, Y, Z) → ADDZ_IN_AAA(X, Y, Z)
ADDZ_IN_AAA(one(X), zero(Y), one(Z)) → U12_AAA(X, Y, Z, addy_in_aaa(X, Y, Z))
ADDZ_IN_AAA(one(X), zero(Y), one(Z)) → ADDY_IN_AAA(X, Y, Z)
ADDY_IN_AAA(b, one(Y), one(Y)) → U7_AAA(Y, binary_in_a(Y))
ADDY_IN_AAA(b, one(Y), one(Y)) → BINARY_IN_A(Y)
ADDY_IN_AAA(b, zero(Y), zero(Y)) → U8_AAA(Y, binaryZ_in_a(Y))
ADDY_IN_AAA(b, zero(Y), zero(Y)) → BINARYZ_IN_A(Y)
ADDY_IN_AAA(X, Y, Z) → U9_AAA(X, Y, Z, addz_in_aaa(X, Y, Z))
ADDY_IN_AAA(X, Y, Z) → ADDZ_IN_AAA(X, Y, Z)
ADDZ_IN_AAA(one(X), one(Y), zero(Z)) → U13_AAA(X, Y, Z, addc_in_aaa(X, Y, Z))
ADDZ_IN_AAA(one(X), one(Y), zero(Z)) → ADDC_IN_AAA(X, Y, Z)
ADDC_IN_AAA(X, b, Z) → U14_AAA(X, Z, succZ_in_aa(X, Z))
ADDC_IN_AAA(X, b, Z) → SUCCZ_IN_AA(X, Z)
SUCCZ_IN_AA(zero(X), one(X)) → U33_AA(X, binaryZ_in_a(X))
SUCCZ_IN_AA(zero(X), one(X)) → BINARYZ_IN_A(X)
SUCCZ_IN_AA(one(X), zero(Z)) → U34_AA(X, Z, succ_in_aa(X, Z))
SUCCZ_IN_AA(one(X), zero(Z)) → SUCC_IN_AA(X, Z)
SUCC_IN_AA(zero(X), one(X)) → U31_AA(X, binaryZ_in_a(X))
SUCC_IN_AA(zero(X), one(X)) → BINARYZ_IN_A(X)
SUCC_IN_AA(one(X), zero(Z)) → U32_AA(X, Z, succ_in_aa(X, Z))
SUCC_IN_AA(one(X), zero(Z)) → SUCC_IN_AA(X, Z)
ADDC_IN_AAA(b, Y, Z) → U15_AAA(Y, Z, succZ_in_aa(Y, Z))
ADDC_IN_AAA(b, Y, Z) → SUCCZ_IN_AA(Y, Z)
ADDC_IN_AAA(X, Y, Z) → U16_AAA(X, Y, Z, addC_in_aaa(X, Y, Z))
ADDC_IN_AAA(X, Y, Z) → ADDC_IN_AAA1(X, Y, Z)
ADDC_IN_AAA1(zero(X), zero(Y), one(Z)) → U23_AAA(X, Y, Z, addz_in_aaa(X, Y, Z))
ADDC_IN_AAA1(zero(X), zero(Y), one(Z)) → ADDZ_IN_AAA(X, Y, Z)
ADDC_IN_AAA1(zero(X), one(Y), zero(Z)) → U24_AAA(X, Y, Z, addX_in_aaa(X, Y, Z))
ADDC_IN_AAA1(zero(X), one(Y), zero(Z)) → ADDX_IN_AAA1(X, Y, Z)
ADDX_IN_AAA1(zero(X), b, one(X)) → U17_AAA(X, binaryZ_in_a(X))
ADDX_IN_AAA1(zero(X), b, one(X)) → BINARYZ_IN_A(X)
ADDX_IN_AAA1(one(X), b, zero(Z)) → U18_AAA(X, Z, succ_in_aa(X, Z))
ADDX_IN_AAA1(one(X), b, zero(Z)) → SUCC_IN_AA(X, Z)
ADDX_IN_AAA1(X, Y, Z) → U19_AAA(X, Y, Z, addC_in_aaa(X, Y, Z))
ADDX_IN_AAA1(X, Y, Z) → ADDC_IN_AAA1(X, Y, Z)
ADDC_IN_AAA1(one(X), zero(Y), zero(Z)) → U25_AAA(X, Y, Z, addY_in_aaa(X, Y, Z))
ADDC_IN_AAA1(one(X), zero(Y), zero(Z)) → ADDY_IN_AAA1(X, Y, Z)
ADDY_IN_AAA1(b, zero(Y), one(Y)) → U20_AAA(Y, binaryZ_in_a(Y))
ADDY_IN_AAA1(b, zero(Y), one(Y)) → BINARYZ_IN_A(Y)
ADDY_IN_AAA1(b, one(Y), zero(Z)) → U21_AAA(Y, Z, succ_in_aa(Y, Z))
ADDY_IN_AAA1(b, one(Y), zero(Z)) → SUCC_IN_AA(Y, Z)
ADDY_IN_AAA1(X, Y, Z) → U22_AAA(X, Y, Z, addC_in_aaa(X, Y, Z))
ADDY_IN_AAA1(X, Y, Z) → ADDC_IN_AAA1(X, Y, Z)
ADDC_IN_AAA1(one(X), one(Y), one(Z)) → U26_AAA(X, Y, Z, addc_in_aaa(X, Y, Z))
ADDC_IN_AAA1(one(X), one(Y), one(Z)) → ADDC_IN_AAA(X, Y, Z)
ADDZ_IN_AGA(zero(X), one(Y), one(Z)) → U11_AGA(X, Y, Z, addx_in_aga(X, Y, Z))
ADDZ_IN_AGA(zero(X), one(Y), one(Z)) → ADDX_IN_AGA(X, Y, Z)
ADDX_IN_AGA(one(X), b, one(X)) → U4_AGA(X, binary_in_a(X))
ADDX_IN_AGA(one(X), b, one(X)) → BINARY_IN_A(X)
ADDX_IN_AGA(zero(X), b, zero(X)) → U5_AGA(X, binaryZ_in_a(X))
ADDX_IN_AGA(zero(X), b, zero(X)) → BINARYZ_IN_A(X)
ADDX_IN_AGA(X, Y, Z) → U6_AGA(X, Y, Z, addz_in_aga(X, Y, Z))
ADDX_IN_AGA(X, Y, Z) → ADDZ_IN_AGA(X, Y, Z)
ADDZ_IN_AGA(one(X), zero(Y), one(Z)) → U12_AGA(X, Y, Z, addy_in_aaa(X, Y, Z))
ADDZ_IN_AGA(one(X), zero(Y), one(Z)) → ADDY_IN_AAA(X, Y, Z)
ADDZ_IN_AGA(one(X), one(Y), zero(Z)) → U13_AGA(X, Y, Z, addc_in_aga(X, Y, Z))
ADDZ_IN_AGA(one(X), one(Y), zero(Z)) → ADDC_IN_AGA(X, Y, Z)
ADDC_IN_AGA(X, b, Z) → U14_AGA(X, Z, succZ_in_aa(X, Z))
ADDC_IN_AGA(X, b, Z) → SUCCZ_IN_AA(X, Z)
ADDC_IN_AGA(b, Y, Z) → U15_AGA(Y, Z, succZ_in_ga(Y, Z))
ADDC_IN_AGA(b, Y, Z) → SUCCZ_IN_GA(Y, Z)
SUCCZ_IN_GA(zero(X), one(X)) → U33_GA(X, binaryZ_in_a(X))
SUCCZ_IN_GA(zero(X), one(X)) → BINARYZ_IN_A(X)
SUCCZ_IN_GA(one(X), zero(Z)) → U34_GA(X, Z, succ_in_ga(X, Z))
SUCCZ_IN_GA(one(X), zero(Z)) → SUCC_IN_GA(X, Z)
SUCC_IN_GA(zero(X), one(X)) → U31_GA(X, binaryZ_in_a(X))
SUCC_IN_GA(zero(X), one(X)) → BINARYZ_IN_A(X)
SUCC_IN_GA(one(X), zero(Z)) → U32_GA(X, Z, succ_in_ga(X, Z))
SUCC_IN_GA(one(X), zero(Z)) → SUCC_IN_GA(X, Z)
ADDC_IN_AGA(X, Y, Z) → U16_AGA(X, Y, Z, addC_in_aga(X, Y, Z))
ADDC_IN_AGA(X, Y, Z) → ADDC_IN_AGA1(X, Y, Z)
ADDC_IN_AGA1(zero(X), zero(Y), one(Z)) → U23_AGA(X, Y, Z, addz_in_aaa(X, Y, Z))
ADDC_IN_AGA1(zero(X), zero(Y), one(Z)) → ADDZ_IN_AAA(X, Y, Z)
ADDC_IN_AGA1(zero(X), one(Y), zero(Z)) → U24_AGA(X, Y, Z, addX_in_aga(X, Y, Z))
ADDC_IN_AGA1(zero(X), one(Y), zero(Z)) → ADDX_IN_AGA1(X, Y, Z)
ADDX_IN_AGA1(zero(X), b, one(X)) → U17_AGA(X, binaryZ_in_a(X))
ADDX_IN_AGA1(zero(X), b, one(X)) → BINARYZ_IN_A(X)
ADDX_IN_AGA1(one(X), b, zero(Z)) → U18_AGA(X, Z, succ_in_aa(X, Z))
ADDX_IN_AGA1(one(X), b, zero(Z)) → SUCC_IN_AA(X, Z)
ADDX_IN_AGA1(X, Y, Z) → U19_AGA(X, Y, Z, addC_in_aga(X, Y, Z))
ADDX_IN_AGA1(X, Y, Z) → ADDC_IN_AGA1(X, Y, Z)
ADDC_IN_AGA1(one(X), zero(Y), zero(Z)) → U25_AGA(X, Y, Z, addY_in_aaa(X, Y, Z))
ADDC_IN_AGA1(one(X), zero(Y), zero(Z)) → ADDY_IN_AAA1(X, Y, Z)
ADDC_IN_AGA1(one(X), one(Y), one(Z)) → U26_AGA(X, Y, Z, addc_in_aga(X, Y, Z))
ADDC_IN_AGA1(one(X), one(Y), one(Z)) → ADDC_IN_AGA(X, Y, Z)
TIMES_IN_AAG(one(R), S, RSS) → U36_AAG(R, S, RSS, times_in_aaa(R, S, RS))
TIMES_IN_AAG(one(R), S, RSS) → TIMES_IN_AAA(R, S, RS)
U36_AAG(R, S, RSS, times_out_aaa(R, S, RS)) → U37_AAG(R, S, RSS, add_in_agg(S, zero(RS), RSS))
U36_AAG(R, S, RSS, times_out_aaa(R, S, RS)) → ADD_IN_AGG(S, zero(RS), RSS)
ADD_IN_AGG(X, b, X) → U1_AGG(X, binaryZ_in_g(X))
ADD_IN_AGG(X, b, X) → BINARYZ_IN_G(X)
ADD_IN_AGG(b, Y, Y) → U2_AGG(Y, binaryZ_in_g(Y))
ADD_IN_AGG(b, Y, Y) → BINARYZ_IN_G(Y)
ADD_IN_AGG(X, Y, Z) → U3_AGG(X, Y, Z, addz_in_agg(X, Y, Z))
ADD_IN_AGG(X, Y, Z) → ADDZ_IN_AGG(X, Y, Z)
ADDZ_IN_AGG(zero(X), zero(Y), zero(Z)) → U10_AGG(X, Y, Z, addz_in_aaa(X, Y, Z))
ADDZ_IN_AGG(zero(X), zero(Y), zero(Z)) → ADDZ_IN_AAA(X, Y, Z)
ADDZ_IN_AGG(zero(X), one(Y), one(Z)) → U11_AGG(X, Y, Z, addx_in_agg(X, Y, Z))
ADDZ_IN_AGG(zero(X), one(Y), one(Z)) → ADDX_IN_AGG(X, Y, Z)
ADDX_IN_AGG(one(X), b, one(X)) → U4_AGG(X, binary_in_g(X))
ADDX_IN_AGG(one(X), b, one(X)) → BINARY_IN_G(X)
ADDX_IN_AGG(zero(X), b, zero(X)) → U5_AGG(X, binaryZ_in_a(X))
ADDX_IN_AGG(zero(X), b, zero(X)) → BINARYZ_IN_A(X)
ADDX_IN_AGG(X, Y, Z) → U6_AGG(X, Y, Z, addz_in_agg(X, Y, Z))
ADDX_IN_AGG(X, Y, Z) → ADDZ_IN_AGG(X, Y, Z)
ADDZ_IN_AGG(one(X), zero(Y), one(Z)) → U12_AGG(X, Y, Z, addy_in_aag(X, Y, Z))
ADDZ_IN_AGG(one(X), zero(Y), one(Z)) → ADDY_IN_AAG(X, Y, Z)
ADDY_IN_AAG(b, one(Y), one(Y)) → U7_AAG(Y, binary_in_g(Y))
ADDY_IN_AAG(b, one(Y), one(Y)) → BINARY_IN_G(Y)
ADDY_IN_AAG(b, zero(Y), zero(Y)) → U8_AAG(Y, binaryZ_in_a(Y))
ADDY_IN_AAG(b, zero(Y), zero(Y)) → BINARYZ_IN_A(Y)
ADDY_IN_AAG(X, Y, Z) → U9_AAG(X, Y, Z, addz_in_aag(X, Y, Z))
ADDY_IN_AAG(X, Y, Z) → ADDZ_IN_AAG(X, Y, Z)
ADDZ_IN_AAG(zero(X), zero(Y), zero(Z)) → U10_AAG(X, Y, Z, addz_in_aaa(X, Y, Z))
ADDZ_IN_AAG(zero(X), zero(Y), zero(Z)) → ADDZ_IN_AAA(X, Y, Z)
ADDZ_IN_AAG(zero(X), one(Y), one(Z)) → U11_AAG(X, Y, Z, addx_in_aag(X, Y, Z))
ADDZ_IN_AAG(zero(X), one(Y), one(Z)) → ADDX_IN_AAG(X, Y, Z)
ADDX_IN_AAG(one(X), b, one(X)) → U4_AAG(X, binary_in_g(X))
ADDX_IN_AAG(one(X), b, one(X)) → BINARY_IN_G(X)
ADDX_IN_AAG(zero(X), b, zero(X)) → U5_AAG(X, binaryZ_in_a(X))
ADDX_IN_AAG(zero(X), b, zero(X)) → BINARYZ_IN_A(X)
ADDX_IN_AAG(X, Y, Z) → U6_AAG(X, Y, Z, addz_in_aag(X, Y, Z))
ADDX_IN_AAG(X, Y, Z) → ADDZ_IN_AAG(X, Y, Z)
ADDZ_IN_AAG(one(X), zero(Y), one(Z)) → U12_AAG(X, Y, Z, addy_in_aag(X, Y, Z))
ADDZ_IN_AAG(one(X), zero(Y), one(Z)) → ADDY_IN_AAG(X, Y, Z)
ADDZ_IN_AAG(one(X), one(Y), zero(Z)) → U13_AAG(X, Y, Z, addc_in_aaa(X, Y, Z))
ADDZ_IN_AAG(one(X), one(Y), zero(Z)) → ADDC_IN_AAA(X, Y, Z)
ADDZ_IN_AGG(one(X), one(Y), zero(Z)) → U13_AGG(X, Y, Z, addc_in_aga(X, Y, Z))
ADDZ_IN_AGG(one(X), one(Y), zero(Z)) → ADDC_IN_AGA(X, Y, Z)
times_in_aag(one(b), X, X) → times_out_aag(one(b), X, X)
times_in_aag(zero(R), S, zero(RS)) → U35_aag(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(b), X, X) → times_out_aaa(one(b), X, X)
times_in_aaa(zero(R), S, zero(RS)) → U35_aaa(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(R), S, RSS) → U36_aaa(R, S, RSS, times_in_aaa(R, S, RS))
U36_aaa(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aaa(R, S, RSS, add_in_aga(S, zero(RS), RSS))
add_in_aga(b, b, b) → add_out_aga(b, b, b)
add_in_aga(X, b, X) → U1_aga(X, binaryZ_in_a(X))
binaryZ_in_a(zero(X)) → U29_a(X, binaryZ_in_a(X))
binaryZ_in_a(one(X)) → U30_a(X, binary_in_a(X))
binary_in_a(b) → binary_out_a(b)
binary_in_a(zero(X)) → U27_a(X, binaryZ_in_a(X))
U27_a(X, binaryZ_out_a(X)) → binary_out_a(zero(X))
binary_in_a(one(X)) → U28_a(X, binary_in_a(X))
U28_a(X, binary_out_a(X)) → binary_out_a(one(X))
U30_a(X, binary_out_a(X)) → binaryZ_out_a(one(X))
U29_a(X, binaryZ_out_a(X)) → binaryZ_out_a(zero(X))
U1_aga(X, binaryZ_out_a(X)) → add_out_aga(X, b, X)
add_in_aga(b, Y, Y) → U2_aga(Y, binaryZ_in_g(Y))
binaryZ_in_g(zero(X)) → U29_g(X, binaryZ_in_a(X))
U29_g(X, binaryZ_out_a(X)) → binaryZ_out_g(zero(X))
binaryZ_in_g(one(X)) → U30_g(X, binary_in_g(X))
binary_in_g(b) → binary_out_g(b)
binary_in_g(zero(X)) → U27_g(X, binaryZ_in_a(X))
U27_g(X, binaryZ_out_a(X)) → binary_out_g(zero(X))
binary_in_g(one(X)) → U28_g(X, binary_in_g(X))
U28_g(X, binary_out_g(X)) → binary_out_g(one(X))
U30_g(X, binary_out_g(X)) → binaryZ_out_g(one(X))
U2_aga(Y, binaryZ_out_g(Y)) → add_out_aga(b, Y, Y)
add_in_aga(X, Y, Z) → U3_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(zero(X), zero(Y), zero(Z)) → U10_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), zero(Y), zero(Z)) → U10_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), one(Y), one(Z)) → U11_aaa(X, Y, Z, addx_in_aaa(X, Y, Z))
addx_in_aaa(one(X), b, one(X)) → U4_aaa(X, binary_in_a(X))
U4_aaa(X, binary_out_a(X)) → addx_out_aaa(one(X), b, one(X))
addx_in_aaa(zero(X), b, zero(X)) → U5_aaa(X, binaryZ_in_a(X))
U5_aaa(X, binaryZ_out_a(X)) → addx_out_aaa(zero(X), b, zero(X))
addx_in_aaa(X, Y, Z) → U6_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), zero(Y), one(Z)) → U12_aaa(X, Y, Z, addy_in_aaa(X, Y, Z))
addy_in_aaa(b, one(Y), one(Y)) → U7_aaa(Y, binary_in_a(Y))
U7_aaa(Y, binary_out_a(Y)) → addy_out_aaa(b, one(Y), one(Y))
addy_in_aaa(b, zero(Y), zero(Y)) → U8_aaa(Y, binaryZ_in_a(Y))
U8_aaa(Y, binaryZ_out_a(Y)) → addy_out_aaa(b, zero(Y), zero(Y))
addy_in_aaa(X, Y, Z) → U9_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), one(Y), zero(Z)) → U13_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
addc_in_aaa(b, b, one(b)) → addc_out_aaa(b, b, one(b))
addc_in_aaa(X, b, Z) → U14_aaa(X, Z, succZ_in_aa(X, Z))
succZ_in_aa(zero(X), one(X)) → U33_aa(X, binaryZ_in_a(X))
U33_aa(X, binaryZ_out_a(X)) → succZ_out_aa(zero(X), one(X))
succZ_in_aa(one(X), zero(Z)) → U34_aa(X, Z, succ_in_aa(X, Z))
succ_in_aa(b, one(b)) → succ_out_aa(b, one(b))
succ_in_aa(zero(X), one(X)) → U31_aa(X, binaryZ_in_a(X))
U31_aa(X, binaryZ_out_a(X)) → succ_out_aa(zero(X), one(X))
succ_in_aa(one(X), zero(Z)) → U32_aa(X, Z, succ_in_aa(X, Z))
U32_aa(X, Z, succ_out_aa(X, Z)) → succ_out_aa(one(X), zero(Z))
U34_aa(X, Z, succ_out_aa(X, Z)) → succZ_out_aa(one(X), zero(Z))
U14_aaa(X, Z, succZ_out_aa(X, Z)) → addc_out_aaa(X, b, Z)
addc_in_aaa(b, Y, Z) → U15_aaa(Y, Z, succZ_in_aa(Y, Z))
U15_aaa(Y, Z, succZ_out_aa(Y, Z)) → addc_out_aaa(b, Y, Z)
addc_in_aaa(X, Y, Z) → U16_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(zero(X), zero(Y), one(Z)) → U23_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), zero(Y), one(Z))
addC_in_aaa(zero(X), one(Y), zero(Z)) → U24_aaa(X, Y, Z, addX_in_aaa(X, Y, Z))
addX_in_aaa(zero(X), b, one(X)) → U17_aaa(X, binaryZ_in_a(X))
U17_aaa(X, binaryZ_out_a(X)) → addX_out_aaa(zero(X), b, one(X))
addX_in_aaa(one(X), b, zero(Z)) → U18_aaa(X, Z, succ_in_aa(X, Z))
U18_aaa(X, Z, succ_out_aa(X, Z)) → addX_out_aaa(one(X), b, zero(Z))
addX_in_aaa(X, Y, Z) → U19_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), zero(Y), zero(Z)) → U25_aaa(X, Y, Z, addY_in_aaa(X, Y, Z))
addY_in_aaa(b, zero(Y), one(Y)) → U20_aaa(Y, binaryZ_in_a(Y))
U20_aaa(Y, binaryZ_out_a(Y)) → addY_out_aaa(b, zero(Y), one(Y))
addY_in_aaa(b, one(Y), zero(Z)) → U21_aaa(Y, Z, succ_in_aa(Y, Z))
U21_aaa(Y, Z, succ_out_aa(Y, Z)) → addY_out_aaa(b, one(Y), zero(Z))
addY_in_aaa(X, Y, Z) → U22_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), one(Y), one(Z)) → U26_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
U26_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), one(Y), one(Z))
U22_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addY_out_aaa(X, Y, Z)
U25_aaa(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), zero(Y), zero(Z))
U19_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addX_out_aaa(X, Y, Z)
U24_aaa(X, Y, Z, addX_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), one(Y), zero(Z))
U16_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addc_out_aaa(X, Y, Z)
U13_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), one(Y), zero(Z))
U9_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addy_out_aaa(X, Y, Z)
U12_aaa(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), zero(Y), one(Z))
U6_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addx_out_aaa(X, Y, Z)
U11_aaa(X, Y, Z, addx_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), one(Y), one(Z))
U10_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), zero(Y), zero(Z))
U10_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aga(zero(X), zero(Y), zero(Z))
addz_in_aga(zero(X), one(Y), one(Z)) → U11_aga(X, Y, Z, addx_in_aga(X, Y, Z))
addx_in_aga(one(X), b, one(X)) → U4_aga(X, binary_in_a(X))
U4_aga(X, binary_out_a(X)) → addx_out_aga(one(X), b, one(X))
addx_in_aga(zero(X), b, zero(X)) → U5_aga(X, binaryZ_in_a(X))
U5_aga(X, binaryZ_out_a(X)) → addx_out_aga(zero(X), b, zero(X))
addx_in_aga(X, Y, Z) → U6_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(one(X), zero(Y), one(Z)) → U12_aga(X, Y, Z, addy_in_aaa(X, Y, Z))
U12_aga(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aga(one(X), zero(Y), one(Z))
addz_in_aga(one(X), one(Y), zero(Z)) → U13_aga(X, Y, Z, addc_in_aga(X, Y, Z))
addc_in_aga(b, b, one(b)) → addc_out_aga(b, b, one(b))
addc_in_aga(X, b, Z) → U14_aga(X, Z, succZ_in_aa(X, Z))
U14_aga(X, Z, succZ_out_aa(X, Z)) → addc_out_aga(X, b, Z)
addc_in_aga(b, Y, Z) → U15_aga(Y, Z, succZ_in_ga(Y, Z))
succZ_in_ga(zero(X), one(X)) → U33_ga(X, binaryZ_in_a(X))
U33_ga(X, binaryZ_out_a(X)) → succZ_out_ga(zero(X), one(X))
succZ_in_ga(one(X), zero(Z)) → U34_ga(X, Z, succ_in_ga(X, Z))
succ_in_ga(b, one(b)) → succ_out_ga(b, one(b))
succ_in_ga(zero(X), one(X)) → U31_ga(X, binaryZ_in_a(X))
U31_ga(X, binaryZ_out_a(X)) → succ_out_ga(zero(X), one(X))
succ_in_ga(one(X), zero(Z)) → U32_ga(X, Z, succ_in_ga(X, Z))
U32_ga(X, Z, succ_out_ga(X, Z)) → succ_out_ga(one(X), zero(Z))
U34_ga(X, Z, succ_out_ga(X, Z)) → succZ_out_ga(one(X), zero(Z))
U15_aga(Y, Z, succZ_out_ga(Y, Z)) → addc_out_aga(b, Y, Z)
addc_in_aga(X, Y, Z) → U16_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(zero(X), zero(Y), one(Z)) → U23_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aga(zero(X), zero(Y), one(Z))
addC_in_aga(zero(X), one(Y), zero(Z)) → U24_aga(X, Y, Z, addX_in_aga(X, Y, Z))
addX_in_aga(zero(X), b, one(X)) → U17_aga(X, binaryZ_in_a(X))
U17_aga(X, binaryZ_out_a(X)) → addX_out_aga(zero(X), b, one(X))
addX_in_aga(one(X), b, zero(Z)) → U18_aga(X, Z, succ_in_aa(X, Z))
U18_aga(X, Z, succ_out_aa(X, Z)) → addX_out_aga(one(X), b, zero(Z))
addX_in_aga(X, Y, Z) → U19_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(one(X), zero(Y), zero(Z)) → U25_aga(X, Y, Z, addY_in_aaa(X, Y, Z))
U25_aga(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aga(one(X), zero(Y), zero(Z))
addC_in_aga(one(X), one(Y), one(Z)) → U26_aga(X, Y, Z, addc_in_aga(X, Y, Z))
U26_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addC_out_aga(one(X), one(Y), one(Z))
U19_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addX_out_aga(X, Y, Z)
U24_aga(X, Y, Z, addX_out_aga(X, Y, Z)) → addC_out_aga(zero(X), one(Y), zero(Z))
U16_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addc_out_aga(X, Y, Z)
U13_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_aga(one(X), one(Y), zero(Z))
U6_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → addx_out_aga(X, Y, Z)
U11_aga(X, Y, Z, addx_out_aga(X, Y, Z)) → addz_out_aga(zero(X), one(Y), one(Z))
U3_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → add_out_aga(X, Y, Z)
U37_aaa(R, S, RSS, add_out_aga(S, zero(RS), RSS)) → times_out_aaa(one(R), S, RSS)
U35_aaa(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aaa(zero(R), S, zero(RS))
U35_aag(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aag(zero(R), S, zero(RS))
times_in_aag(one(R), S, RSS) → U36_aag(R, S, RSS, times_in_aaa(R, S, RS))
U36_aag(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aag(R, S, RSS, add_in_agg(S, zero(RS), RSS))
add_in_agg(b, b, b) → add_out_agg(b, b, b)
add_in_agg(X, b, X) → U1_agg(X, binaryZ_in_g(X))
U1_agg(X, binaryZ_out_g(X)) → add_out_agg(X, b, X)
add_in_agg(b, Y, Y) → U2_agg(Y, binaryZ_in_g(Y))
U2_agg(Y, binaryZ_out_g(Y)) → add_out_agg(b, Y, Y)
add_in_agg(X, Y, Z) → U3_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(zero(X), zero(Y), zero(Z)) → U10_agg(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_agg(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_agg(zero(X), zero(Y), zero(Z))
addz_in_agg(zero(X), one(Y), one(Z)) → U11_agg(X, Y, Z, addx_in_agg(X, Y, Z))
addx_in_agg(one(X), b, one(X)) → U4_agg(X, binary_in_g(X))
U4_agg(X, binary_out_g(X)) → addx_out_agg(one(X), b, one(X))
addx_in_agg(zero(X), b, zero(X)) → U5_agg(X, binaryZ_in_a(X))
U5_agg(X, binaryZ_out_a(X)) → addx_out_agg(zero(X), b, zero(X))
addx_in_agg(X, Y, Z) → U6_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(one(X), zero(Y), one(Z)) → U12_agg(X, Y, Z, addy_in_aag(X, Y, Z))
addy_in_aag(b, one(Y), one(Y)) → U7_aag(Y, binary_in_g(Y))
U7_aag(Y, binary_out_g(Y)) → addy_out_aag(b, one(Y), one(Y))
addy_in_aag(b, zero(Y), zero(Y)) → U8_aag(Y, binaryZ_in_a(Y))
U8_aag(Y, binaryZ_out_a(Y)) → addy_out_aag(b, zero(Y), zero(Y))
addy_in_aag(X, Y, Z) → U9_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(zero(X), zero(Y), zero(Z)) → U10_aag(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_aag(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aag(zero(X), zero(Y), zero(Z))
addz_in_aag(zero(X), one(Y), one(Z)) → U11_aag(X, Y, Z, addx_in_aag(X, Y, Z))
addx_in_aag(one(X), b, one(X)) → U4_aag(X, binary_in_g(X))
U4_aag(X, binary_out_g(X)) → addx_out_aag(one(X), b, one(X))
addx_in_aag(zero(X), b, zero(X)) → U5_aag(X, binaryZ_in_a(X))
U5_aag(X, binaryZ_out_a(X)) → addx_out_aag(zero(X), b, zero(X))
addx_in_aag(X, Y, Z) → U6_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(one(X), zero(Y), one(Z)) → U12_aag(X, Y, Z, addy_in_aag(X, Y, Z))
U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_aag(one(X), zero(Y), one(Z))
addz_in_aag(one(X), one(Y), zero(Z)) → U13_aag(X, Y, Z, addc_in_aaa(X, Y, Z))
U13_aag(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aag(one(X), one(Y), zero(Z))
U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addx_out_aag(X, Y, Z)
U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) → addz_out_aag(zero(X), one(Y), one(Z))
U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addy_out_aag(X, Y, Z)
U12_agg(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_agg(one(X), zero(Y), one(Z))
addz_in_agg(one(X), one(Y), zero(Z)) → U13_agg(X, Y, Z, addc_in_aga(X, Y, Z))
U13_agg(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_agg(one(X), one(Y), zero(Z))
U6_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → addx_out_agg(X, Y, Z)
U11_agg(X, Y, Z, addx_out_agg(X, Y, Z)) → addz_out_agg(zero(X), one(Y), one(Z))
U3_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → add_out_agg(X, Y, Z)
U37_aag(R, S, RSS, add_out_agg(S, zero(RS), RSS)) → times_out_aag(one(R), S, RSS)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
BINARY_IN_A(one(X)) → BINARY_IN_A(X)
BINARYZ_IN_A(one(X)) → BINARY_IN_A(X)
BINARY_IN_A(zero(X)) → BINARYZ_IN_A(X)
BINARYZ_IN_A(zero(X)) → BINARYZ_IN_A(X)
times_in_aag(one(b), X, X) → times_out_aag(one(b), X, X)
times_in_aag(zero(R), S, zero(RS)) → U35_aag(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(b), X, X) → times_out_aaa(one(b), X, X)
times_in_aaa(zero(R), S, zero(RS)) → U35_aaa(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(R), S, RSS) → U36_aaa(R, S, RSS, times_in_aaa(R, S, RS))
U36_aaa(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aaa(R, S, RSS, add_in_aga(S, zero(RS), RSS))
add_in_aga(b, b, b) → add_out_aga(b, b, b)
add_in_aga(X, b, X) → U1_aga(X, binaryZ_in_a(X))
binaryZ_in_a(zero(X)) → U29_a(X, binaryZ_in_a(X))
binaryZ_in_a(one(X)) → U30_a(X, binary_in_a(X))
binary_in_a(b) → binary_out_a(b)
binary_in_a(zero(X)) → U27_a(X, binaryZ_in_a(X))
U27_a(X, binaryZ_out_a(X)) → binary_out_a(zero(X))
binary_in_a(one(X)) → U28_a(X, binary_in_a(X))
U28_a(X, binary_out_a(X)) → binary_out_a(one(X))
U30_a(X, binary_out_a(X)) → binaryZ_out_a(one(X))
U29_a(X, binaryZ_out_a(X)) → binaryZ_out_a(zero(X))
U1_aga(X, binaryZ_out_a(X)) → add_out_aga(X, b, X)
add_in_aga(b, Y, Y) → U2_aga(Y, binaryZ_in_g(Y))
binaryZ_in_g(zero(X)) → U29_g(X, binaryZ_in_a(X))
U29_g(X, binaryZ_out_a(X)) → binaryZ_out_g(zero(X))
binaryZ_in_g(one(X)) → U30_g(X, binary_in_g(X))
binary_in_g(b) → binary_out_g(b)
binary_in_g(zero(X)) → U27_g(X, binaryZ_in_a(X))
U27_g(X, binaryZ_out_a(X)) → binary_out_g(zero(X))
binary_in_g(one(X)) → U28_g(X, binary_in_g(X))
U28_g(X, binary_out_g(X)) → binary_out_g(one(X))
U30_g(X, binary_out_g(X)) → binaryZ_out_g(one(X))
U2_aga(Y, binaryZ_out_g(Y)) → add_out_aga(b, Y, Y)
add_in_aga(X, Y, Z) → U3_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(zero(X), zero(Y), zero(Z)) → U10_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), zero(Y), zero(Z)) → U10_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), one(Y), one(Z)) → U11_aaa(X, Y, Z, addx_in_aaa(X, Y, Z))
addx_in_aaa(one(X), b, one(X)) → U4_aaa(X, binary_in_a(X))
U4_aaa(X, binary_out_a(X)) → addx_out_aaa(one(X), b, one(X))
addx_in_aaa(zero(X), b, zero(X)) → U5_aaa(X, binaryZ_in_a(X))
U5_aaa(X, binaryZ_out_a(X)) → addx_out_aaa(zero(X), b, zero(X))
addx_in_aaa(X, Y, Z) → U6_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), zero(Y), one(Z)) → U12_aaa(X, Y, Z, addy_in_aaa(X, Y, Z))
addy_in_aaa(b, one(Y), one(Y)) → U7_aaa(Y, binary_in_a(Y))
U7_aaa(Y, binary_out_a(Y)) → addy_out_aaa(b, one(Y), one(Y))
addy_in_aaa(b, zero(Y), zero(Y)) → U8_aaa(Y, binaryZ_in_a(Y))
U8_aaa(Y, binaryZ_out_a(Y)) → addy_out_aaa(b, zero(Y), zero(Y))
addy_in_aaa(X, Y, Z) → U9_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), one(Y), zero(Z)) → U13_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
addc_in_aaa(b, b, one(b)) → addc_out_aaa(b, b, one(b))
addc_in_aaa(X, b, Z) → U14_aaa(X, Z, succZ_in_aa(X, Z))
succZ_in_aa(zero(X), one(X)) → U33_aa(X, binaryZ_in_a(X))
U33_aa(X, binaryZ_out_a(X)) → succZ_out_aa(zero(X), one(X))
succZ_in_aa(one(X), zero(Z)) → U34_aa(X, Z, succ_in_aa(X, Z))
succ_in_aa(b, one(b)) → succ_out_aa(b, one(b))
succ_in_aa(zero(X), one(X)) → U31_aa(X, binaryZ_in_a(X))
U31_aa(X, binaryZ_out_a(X)) → succ_out_aa(zero(X), one(X))
succ_in_aa(one(X), zero(Z)) → U32_aa(X, Z, succ_in_aa(X, Z))
U32_aa(X, Z, succ_out_aa(X, Z)) → succ_out_aa(one(X), zero(Z))
U34_aa(X, Z, succ_out_aa(X, Z)) → succZ_out_aa(one(X), zero(Z))
U14_aaa(X, Z, succZ_out_aa(X, Z)) → addc_out_aaa(X, b, Z)
addc_in_aaa(b, Y, Z) → U15_aaa(Y, Z, succZ_in_aa(Y, Z))
U15_aaa(Y, Z, succZ_out_aa(Y, Z)) → addc_out_aaa(b, Y, Z)
addc_in_aaa(X, Y, Z) → U16_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(zero(X), zero(Y), one(Z)) → U23_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), zero(Y), one(Z))
addC_in_aaa(zero(X), one(Y), zero(Z)) → U24_aaa(X, Y, Z, addX_in_aaa(X, Y, Z))
addX_in_aaa(zero(X), b, one(X)) → U17_aaa(X, binaryZ_in_a(X))
U17_aaa(X, binaryZ_out_a(X)) → addX_out_aaa(zero(X), b, one(X))
addX_in_aaa(one(X), b, zero(Z)) → U18_aaa(X, Z, succ_in_aa(X, Z))
U18_aaa(X, Z, succ_out_aa(X, Z)) → addX_out_aaa(one(X), b, zero(Z))
addX_in_aaa(X, Y, Z) → U19_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), zero(Y), zero(Z)) → U25_aaa(X, Y, Z, addY_in_aaa(X, Y, Z))
addY_in_aaa(b, zero(Y), one(Y)) → U20_aaa(Y, binaryZ_in_a(Y))
U20_aaa(Y, binaryZ_out_a(Y)) → addY_out_aaa(b, zero(Y), one(Y))
addY_in_aaa(b, one(Y), zero(Z)) → U21_aaa(Y, Z, succ_in_aa(Y, Z))
U21_aaa(Y, Z, succ_out_aa(Y, Z)) → addY_out_aaa(b, one(Y), zero(Z))
addY_in_aaa(X, Y, Z) → U22_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), one(Y), one(Z)) → U26_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
U26_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), one(Y), one(Z))
U22_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addY_out_aaa(X, Y, Z)
U25_aaa(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), zero(Y), zero(Z))
U19_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addX_out_aaa(X, Y, Z)
U24_aaa(X, Y, Z, addX_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), one(Y), zero(Z))
U16_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addc_out_aaa(X, Y, Z)
U13_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), one(Y), zero(Z))
U9_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addy_out_aaa(X, Y, Z)
U12_aaa(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), zero(Y), one(Z))
U6_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addx_out_aaa(X, Y, Z)
U11_aaa(X, Y, Z, addx_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), one(Y), one(Z))
U10_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), zero(Y), zero(Z))
U10_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aga(zero(X), zero(Y), zero(Z))
addz_in_aga(zero(X), one(Y), one(Z)) → U11_aga(X, Y, Z, addx_in_aga(X, Y, Z))
addx_in_aga(one(X), b, one(X)) → U4_aga(X, binary_in_a(X))
U4_aga(X, binary_out_a(X)) → addx_out_aga(one(X), b, one(X))
addx_in_aga(zero(X), b, zero(X)) → U5_aga(X, binaryZ_in_a(X))
U5_aga(X, binaryZ_out_a(X)) → addx_out_aga(zero(X), b, zero(X))
addx_in_aga(X, Y, Z) → U6_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(one(X), zero(Y), one(Z)) → U12_aga(X, Y, Z, addy_in_aaa(X, Y, Z))
U12_aga(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aga(one(X), zero(Y), one(Z))
addz_in_aga(one(X), one(Y), zero(Z)) → U13_aga(X, Y, Z, addc_in_aga(X, Y, Z))
addc_in_aga(b, b, one(b)) → addc_out_aga(b, b, one(b))
addc_in_aga(X, b, Z) → U14_aga(X, Z, succZ_in_aa(X, Z))
U14_aga(X, Z, succZ_out_aa(X, Z)) → addc_out_aga(X, b, Z)
addc_in_aga(b, Y, Z) → U15_aga(Y, Z, succZ_in_ga(Y, Z))
succZ_in_ga(zero(X), one(X)) → U33_ga(X, binaryZ_in_a(X))
U33_ga(X, binaryZ_out_a(X)) → succZ_out_ga(zero(X), one(X))
succZ_in_ga(one(X), zero(Z)) → U34_ga(X, Z, succ_in_ga(X, Z))
succ_in_ga(b, one(b)) → succ_out_ga(b, one(b))
succ_in_ga(zero(X), one(X)) → U31_ga(X, binaryZ_in_a(X))
U31_ga(X, binaryZ_out_a(X)) → succ_out_ga(zero(X), one(X))
succ_in_ga(one(X), zero(Z)) → U32_ga(X, Z, succ_in_ga(X, Z))
U32_ga(X, Z, succ_out_ga(X, Z)) → succ_out_ga(one(X), zero(Z))
U34_ga(X, Z, succ_out_ga(X, Z)) → succZ_out_ga(one(X), zero(Z))
U15_aga(Y, Z, succZ_out_ga(Y, Z)) → addc_out_aga(b, Y, Z)
addc_in_aga(X, Y, Z) → U16_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(zero(X), zero(Y), one(Z)) → U23_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aga(zero(X), zero(Y), one(Z))
addC_in_aga(zero(X), one(Y), zero(Z)) → U24_aga(X, Y, Z, addX_in_aga(X, Y, Z))
addX_in_aga(zero(X), b, one(X)) → U17_aga(X, binaryZ_in_a(X))
U17_aga(X, binaryZ_out_a(X)) → addX_out_aga(zero(X), b, one(X))
addX_in_aga(one(X), b, zero(Z)) → U18_aga(X, Z, succ_in_aa(X, Z))
U18_aga(X, Z, succ_out_aa(X, Z)) → addX_out_aga(one(X), b, zero(Z))
addX_in_aga(X, Y, Z) → U19_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(one(X), zero(Y), zero(Z)) → U25_aga(X, Y, Z, addY_in_aaa(X, Y, Z))
U25_aga(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aga(one(X), zero(Y), zero(Z))
addC_in_aga(one(X), one(Y), one(Z)) → U26_aga(X, Y, Z, addc_in_aga(X, Y, Z))
U26_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addC_out_aga(one(X), one(Y), one(Z))
U19_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addX_out_aga(X, Y, Z)
U24_aga(X, Y, Z, addX_out_aga(X, Y, Z)) → addC_out_aga(zero(X), one(Y), zero(Z))
U16_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addc_out_aga(X, Y, Z)
U13_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_aga(one(X), one(Y), zero(Z))
U6_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → addx_out_aga(X, Y, Z)
U11_aga(X, Y, Z, addx_out_aga(X, Y, Z)) → addz_out_aga(zero(X), one(Y), one(Z))
U3_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → add_out_aga(X, Y, Z)
U37_aaa(R, S, RSS, add_out_aga(S, zero(RS), RSS)) → times_out_aaa(one(R), S, RSS)
U35_aaa(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aaa(zero(R), S, zero(RS))
U35_aag(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aag(zero(R), S, zero(RS))
times_in_aag(one(R), S, RSS) → U36_aag(R, S, RSS, times_in_aaa(R, S, RS))
U36_aag(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aag(R, S, RSS, add_in_agg(S, zero(RS), RSS))
add_in_agg(b, b, b) → add_out_agg(b, b, b)
add_in_agg(X, b, X) → U1_agg(X, binaryZ_in_g(X))
U1_agg(X, binaryZ_out_g(X)) → add_out_agg(X, b, X)
add_in_agg(b, Y, Y) → U2_agg(Y, binaryZ_in_g(Y))
U2_agg(Y, binaryZ_out_g(Y)) → add_out_agg(b, Y, Y)
add_in_agg(X, Y, Z) → U3_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(zero(X), zero(Y), zero(Z)) → U10_agg(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_agg(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_agg(zero(X), zero(Y), zero(Z))
addz_in_agg(zero(X), one(Y), one(Z)) → U11_agg(X, Y, Z, addx_in_agg(X, Y, Z))
addx_in_agg(one(X), b, one(X)) → U4_agg(X, binary_in_g(X))
U4_agg(X, binary_out_g(X)) → addx_out_agg(one(X), b, one(X))
addx_in_agg(zero(X), b, zero(X)) → U5_agg(X, binaryZ_in_a(X))
U5_agg(X, binaryZ_out_a(X)) → addx_out_agg(zero(X), b, zero(X))
addx_in_agg(X, Y, Z) → U6_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(one(X), zero(Y), one(Z)) → U12_agg(X, Y, Z, addy_in_aag(X, Y, Z))
addy_in_aag(b, one(Y), one(Y)) → U7_aag(Y, binary_in_g(Y))
U7_aag(Y, binary_out_g(Y)) → addy_out_aag(b, one(Y), one(Y))
addy_in_aag(b, zero(Y), zero(Y)) → U8_aag(Y, binaryZ_in_a(Y))
U8_aag(Y, binaryZ_out_a(Y)) → addy_out_aag(b, zero(Y), zero(Y))
addy_in_aag(X, Y, Z) → U9_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(zero(X), zero(Y), zero(Z)) → U10_aag(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_aag(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aag(zero(X), zero(Y), zero(Z))
addz_in_aag(zero(X), one(Y), one(Z)) → U11_aag(X, Y, Z, addx_in_aag(X, Y, Z))
addx_in_aag(one(X), b, one(X)) → U4_aag(X, binary_in_g(X))
U4_aag(X, binary_out_g(X)) → addx_out_aag(one(X), b, one(X))
addx_in_aag(zero(X), b, zero(X)) → U5_aag(X, binaryZ_in_a(X))
U5_aag(X, binaryZ_out_a(X)) → addx_out_aag(zero(X), b, zero(X))
addx_in_aag(X, Y, Z) → U6_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(one(X), zero(Y), one(Z)) → U12_aag(X, Y, Z, addy_in_aag(X, Y, Z))
U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_aag(one(X), zero(Y), one(Z))
addz_in_aag(one(X), one(Y), zero(Z)) → U13_aag(X, Y, Z, addc_in_aaa(X, Y, Z))
U13_aag(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aag(one(X), one(Y), zero(Z))
U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addx_out_aag(X, Y, Z)
U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) → addz_out_aag(zero(X), one(Y), one(Z))
U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addy_out_aag(X, Y, Z)
U12_agg(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_agg(one(X), zero(Y), one(Z))
addz_in_agg(one(X), one(Y), zero(Z)) → U13_agg(X, Y, Z, addc_in_aga(X, Y, Z))
U13_agg(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_agg(one(X), one(Y), zero(Z))
U6_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → addx_out_agg(X, Y, Z)
U11_agg(X, Y, Z, addx_out_agg(X, Y, Z)) → addz_out_agg(zero(X), one(Y), one(Z))
U3_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → add_out_agg(X, Y, Z)
U37_aag(R, S, RSS, add_out_agg(S, zero(RS), RSS)) → times_out_aag(one(R), S, RSS)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
BINARY_IN_A(one(X)) → BINARY_IN_A(X)
BINARYZ_IN_A(one(X)) → BINARY_IN_A(X)
BINARY_IN_A(zero(X)) → BINARYZ_IN_A(X)
BINARYZ_IN_A(zero(X)) → BINARYZ_IN_A(X)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
BINARYZ_IN_A → BINARYZ_IN_A
BINARY_IN_A → BINARY_IN_A
BINARY_IN_A → BINARYZ_IN_A
BINARYZ_IN_A → BINARY_IN_A
BINARYZ_IN_A → BINARYZ_IN_A
BINARY_IN_A → BINARY_IN_A
BINARY_IN_A → BINARYZ_IN_A
BINARYZ_IN_A → BINARY_IN_A
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
SUCC_IN_GA(one(X), zero(Z)) → SUCC_IN_GA(X, Z)
times_in_aag(one(b), X, X) → times_out_aag(one(b), X, X)
times_in_aag(zero(R), S, zero(RS)) → U35_aag(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(b), X, X) → times_out_aaa(one(b), X, X)
times_in_aaa(zero(R), S, zero(RS)) → U35_aaa(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(R), S, RSS) → U36_aaa(R, S, RSS, times_in_aaa(R, S, RS))
U36_aaa(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aaa(R, S, RSS, add_in_aga(S, zero(RS), RSS))
add_in_aga(b, b, b) → add_out_aga(b, b, b)
add_in_aga(X, b, X) → U1_aga(X, binaryZ_in_a(X))
binaryZ_in_a(zero(X)) → U29_a(X, binaryZ_in_a(X))
binaryZ_in_a(one(X)) → U30_a(X, binary_in_a(X))
binary_in_a(b) → binary_out_a(b)
binary_in_a(zero(X)) → U27_a(X, binaryZ_in_a(X))
U27_a(X, binaryZ_out_a(X)) → binary_out_a(zero(X))
binary_in_a(one(X)) → U28_a(X, binary_in_a(X))
U28_a(X, binary_out_a(X)) → binary_out_a(one(X))
U30_a(X, binary_out_a(X)) → binaryZ_out_a(one(X))
U29_a(X, binaryZ_out_a(X)) → binaryZ_out_a(zero(X))
U1_aga(X, binaryZ_out_a(X)) → add_out_aga(X, b, X)
add_in_aga(b, Y, Y) → U2_aga(Y, binaryZ_in_g(Y))
binaryZ_in_g(zero(X)) → U29_g(X, binaryZ_in_a(X))
U29_g(X, binaryZ_out_a(X)) → binaryZ_out_g(zero(X))
binaryZ_in_g(one(X)) → U30_g(X, binary_in_g(X))
binary_in_g(b) → binary_out_g(b)
binary_in_g(zero(X)) → U27_g(X, binaryZ_in_a(X))
U27_g(X, binaryZ_out_a(X)) → binary_out_g(zero(X))
binary_in_g(one(X)) → U28_g(X, binary_in_g(X))
U28_g(X, binary_out_g(X)) → binary_out_g(one(X))
U30_g(X, binary_out_g(X)) → binaryZ_out_g(one(X))
U2_aga(Y, binaryZ_out_g(Y)) → add_out_aga(b, Y, Y)
add_in_aga(X, Y, Z) → U3_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(zero(X), zero(Y), zero(Z)) → U10_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), zero(Y), zero(Z)) → U10_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), one(Y), one(Z)) → U11_aaa(X, Y, Z, addx_in_aaa(X, Y, Z))
addx_in_aaa(one(X), b, one(X)) → U4_aaa(X, binary_in_a(X))
U4_aaa(X, binary_out_a(X)) → addx_out_aaa(one(X), b, one(X))
addx_in_aaa(zero(X), b, zero(X)) → U5_aaa(X, binaryZ_in_a(X))
U5_aaa(X, binaryZ_out_a(X)) → addx_out_aaa(zero(X), b, zero(X))
addx_in_aaa(X, Y, Z) → U6_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), zero(Y), one(Z)) → U12_aaa(X, Y, Z, addy_in_aaa(X, Y, Z))
addy_in_aaa(b, one(Y), one(Y)) → U7_aaa(Y, binary_in_a(Y))
U7_aaa(Y, binary_out_a(Y)) → addy_out_aaa(b, one(Y), one(Y))
addy_in_aaa(b, zero(Y), zero(Y)) → U8_aaa(Y, binaryZ_in_a(Y))
U8_aaa(Y, binaryZ_out_a(Y)) → addy_out_aaa(b, zero(Y), zero(Y))
addy_in_aaa(X, Y, Z) → U9_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), one(Y), zero(Z)) → U13_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
addc_in_aaa(b, b, one(b)) → addc_out_aaa(b, b, one(b))
addc_in_aaa(X, b, Z) → U14_aaa(X, Z, succZ_in_aa(X, Z))
succZ_in_aa(zero(X), one(X)) → U33_aa(X, binaryZ_in_a(X))
U33_aa(X, binaryZ_out_a(X)) → succZ_out_aa(zero(X), one(X))
succZ_in_aa(one(X), zero(Z)) → U34_aa(X, Z, succ_in_aa(X, Z))
succ_in_aa(b, one(b)) → succ_out_aa(b, one(b))
succ_in_aa(zero(X), one(X)) → U31_aa(X, binaryZ_in_a(X))
U31_aa(X, binaryZ_out_a(X)) → succ_out_aa(zero(X), one(X))
succ_in_aa(one(X), zero(Z)) → U32_aa(X, Z, succ_in_aa(X, Z))
U32_aa(X, Z, succ_out_aa(X, Z)) → succ_out_aa(one(X), zero(Z))
U34_aa(X, Z, succ_out_aa(X, Z)) → succZ_out_aa(one(X), zero(Z))
U14_aaa(X, Z, succZ_out_aa(X, Z)) → addc_out_aaa(X, b, Z)
addc_in_aaa(b, Y, Z) → U15_aaa(Y, Z, succZ_in_aa(Y, Z))
U15_aaa(Y, Z, succZ_out_aa(Y, Z)) → addc_out_aaa(b, Y, Z)
addc_in_aaa(X, Y, Z) → U16_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(zero(X), zero(Y), one(Z)) → U23_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), zero(Y), one(Z))
addC_in_aaa(zero(X), one(Y), zero(Z)) → U24_aaa(X, Y, Z, addX_in_aaa(X, Y, Z))
addX_in_aaa(zero(X), b, one(X)) → U17_aaa(X, binaryZ_in_a(X))
U17_aaa(X, binaryZ_out_a(X)) → addX_out_aaa(zero(X), b, one(X))
addX_in_aaa(one(X), b, zero(Z)) → U18_aaa(X, Z, succ_in_aa(X, Z))
U18_aaa(X, Z, succ_out_aa(X, Z)) → addX_out_aaa(one(X), b, zero(Z))
addX_in_aaa(X, Y, Z) → U19_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), zero(Y), zero(Z)) → U25_aaa(X, Y, Z, addY_in_aaa(X, Y, Z))
addY_in_aaa(b, zero(Y), one(Y)) → U20_aaa(Y, binaryZ_in_a(Y))
U20_aaa(Y, binaryZ_out_a(Y)) → addY_out_aaa(b, zero(Y), one(Y))
addY_in_aaa(b, one(Y), zero(Z)) → U21_aaa(Y, Z, succ_in_aa(Y, Z))
U21_aaa(Y, Z, succ_out_aa(Y, Z)) → addY_out_aaa(b, one(Y), zero(Z))
addY_in_aaa(X, Y, Z) → U22_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), one(Y), one(Z)) → U26_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
U26_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), one(Y), one(Z))
U22_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addY_out_aaa(X, Y, Z)
U25_aaa(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), zero(Y), zero(Z))
U19_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addX_out_aaa(X, Y, Z)
U24_aaa(X, Y, Z, addX_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), one(Y), zero(Z))
U16_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addc_out_aaa(X, Y, Z)
U13_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), one(Y), zero(Z))
U9_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addy_out_aaa(X, Y, Z)
U12_aaa(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), zero(Y), one(Z))
U6_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addx_out_aaa(X, Y, Z)
U11_aaa(X, Y, Z, addx_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), one(Y), one(Z))
U10_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), zero(Y), zero(Z))
U10_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aga(zero(X), zero(Y), zero(Z))
addz_in_aga(zero(X), one(Y), one(Z)) → U11_aga(X, Y, Z, addx_in_aga(X, Y, Z))
addx_in_aga(one(X), b, one(X)) → U4_aga(X, binary_in_a(X))
U4_aga(X, binary_out_a(X)) → addx_out_aga(one(X), b, one(X))
addx_in_aga(zero(X), b, zero(X)) → U5_aga(X, binaryZ_in_a(X))
U5_aga(X, binaryZ_out_a(X)) → addx_out_aga(zero(X), b, zero(X))
addx_in_aga(X, Y, Z) → U6_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(one(X), zero(Y), one(Z)) → U12_aga(X, Y, Z, addy_in_aaa(X, Y, Z))
U12_aga(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aga(one(X), zero(Y), one(Z))
addz_in_aga(one(X), one(Y), zero(Z)) → U13_aga(X, Y, Z, addc_in_aga(X, Y, Z))
addc_in_aga(b, b, one(b)) → addc_out_aga(b, b, one(b))
addc_in_aga(X, b, Z) → U14_aga(X, Z, succZ_in_aa(X, Z))
U14_aga(X, Z, succZ_out_aa(X, Z)) → addc_out_aga(X, b, Z)
addc_in_aga(b, Y, Z) → U15_aga(Y, Z, succZ_in_ga(Y, Z))
succZ_in_ga(zero(X), one(X)) → U33_ga(X, binaryZ_in_a(X))
U33_ga(X, binaryZ_out_a(X)) → succZ_out_ga(zero(X), one(X))
succZ_in_ga(one(X), zero(Z)) → U34_ga(X, Z, succ_in_ga(X, Z))
succ_in_ga(b, one(b)) → succ_out_ga(b, one(b))
succ_in_ga(zero(X), one(X)) → U31_ga(X, binaryZ_in_a(X))
U31_ga(X, binaryZ_out_a(X)) → succ_out_ga(zero(X), one(X))
succ_in_ga(one(X), zero(Z)) → U32_ga(X, Z, succ_in_ga(X, Z))
U32_ga(X, Z, succ_out_ga(X, Z)) → succ_out_ga(one(X), zero(Z))
U34_ga(X, Z, succ_out_ga(X, Z)) → succZ_out_ga(one(X), zero(Z))
U15_aga(Y, Z, succZ_out_ga(Y, Z)) → addc_out_aga(b, Y, Z)
addc_in_aga(X, Y, Z) → U16_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(zero(X), zero(Y), one(Z)) → U23_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aga(zero(X), zero(Y), one(Z))
addC_in_aga(zero(X), one(Y), zero(Z)) → U24_aga(X, Y, Z, addX_in_aga(X, Y, Z))
addX_in_aga(zero(X), b, one(X)) → U17_aga(X, binaryZ_in_a(X))
U17_aga(X, binaryZ_out_a(X)) → addX_out_aga(zero(X), b, one(X))
addX_in_aga(one(X), b, zero(Z)) → U18_aga(X, Z, succ_in_aa(X, Z))
U18_aga(X, Z, succ_out_aa(X, Z)) → addX_out_aga(one(X), b, zero(Z))
addX_in_aga(X, Y, Z) → U19_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(one(X), zero(Y), zero(Z)) → U25_aga(X, Y, Z, addY_in_aaa(X, Y, Z))
U25_aga(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aga(one(X), zero(Y), zero(Z))
addC_in_aga(one(X), one(Y), one(Z)) → U26_aga(X, Y, Z, addc_in_aga(X, Y, Z))
U26_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addC_out_aga(one(X), one(Y), one(Z))
U19_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addX_out_aga(X, Y, Z)
U24_aga(X, Y, Z, addX_out_aga(X, Y, Z)) → addC_out_aga(zero(X), one(Y), zero(Z))
U16_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addc_out_aga(X, Y, Z)
U13_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_aga(one(X), one(Y), zero(Z))
U6_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → addx_out_aga(X, Y, Z)
U11_aga(X, Y, Z, addx_out_aga(X, Y, Z)) → addz_out_aga(zero(X), one(Y), one(Z))
U3_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → add_out_aga(X, Y, Z)
U37_aaa(R, S, RSS, add_out_aga(S, zero(RS), RSS)) → times_out_aaa(one(R), S, RSS)
U35_aaa(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aaa(zero(R), S, zero(RS))
U35_aag(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aag(zero(R), S, zero(RS))
times_in_aag(one(R), S, RSS) → U36_aag(R, S, RSS, times_in_aaa(R, S, RS))
U36_aag(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aag(R, S, RSS, add_in_agg(S, zero(RS), RSS))
add_in_agg(b, b, b) → add_out_agg(b, b, b)
add_in_agg(X, b, X) → U1_agg(X, binaryZ_in_g(X))
U1_agg(X, binaryZ_out_g(X)) → add_out_agg(X, b, X)
add_in_agg(b, Y, Y) → U2_agg(Y, binaryZ_in_g(Y))
U2_agg(Y, binaryZ_out_g(Y)) → add_out_agg(b, Y, Y)
add_in_agg(X, Y, Z) → U3_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(zero(X), zero(Y), zero(Z)) → U10_agg(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_agg(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_agg(zero(X), zero(Y), zero(Z))
addz_in_agg(zero(X), one(Y), one(Z)) → U11_agg(X, Y, Z, addx_in_agg(X, Y, Z))
addx_in_agg(one(X), b, one(X)) → U4_agg(X, binary_in_g(X))
U4_agg(X, binary_out_g(X)) → addx_out_agg(one(X), b, one(X))
addx_in_agg(zero(X), b, zero(X)) → U5_agg(X, binaryZ_in_a(X))
U5_agg(X, binaryZ_out_a(X)) → addx_out_agg(zero(X), b, zero(X))
addx_in_agg(X, Y, Z) → U6_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(one(X), zero(Y), one(Z)) → U12_agg(X, Y, Z, addy_in_aag(X, Y, Z))
addy_in_aag(b, one(Y), one(Y)) → U7_aag(Y, binary_in_g(Y))
U7_aag(Y, binary_out_g(Y)) → addy_out_aag(b, one(Y), one(Y))
addy_in_aag(b, zero(Y), zero(Y)) → U8_aag(Y, binaryZ_in_a(Y))
U8_aag(Y, binaryZ_out_a(Y)) → addy_out_aag(b, zero(Y), zero(Y))
addy_in_aag(X, Y, Z) → U9_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(zero(X), zero(Y), zero(Z)) → U10_aag(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_aag(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aag(zero(X), zero(Y), zero(Z))
addz_in_aag(zero(X), one(Y), one(Z)) → U11_aag(X, Y, Z, addx_in_aag(X, Y, Z))
addx_in_aag(one(X), b, one(X)) → U4_aag(X, binary_in_g(X))
U4_aag(X, binary_out_g(X)) → addx_out_aag(one(X), b, one(X))
addx_in_aag(zero(X), b, zero(X)) → U5_aag(X, binaryZ_in_a(X))
U5_aag(X, binaryZ_out_a(X)) → addx_out_aag(zero(X), b, zero(X))
addx_in_aag(X, Y, Z) → U6_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(one(X), zero(Y), one(Z)) → U12_aag(X, Y, Z, addy_in_aag(X, Y, Z))
U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_aag(one(X), zero(Y), one(Z))
addz_in_aag(one(X), one(Y), zero(Z)) → U13_aag(X, Y, Z, addc_in_aaa(X, Y, Z))
U13_aag(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aag(one(X), one(Y), zero(Z))
U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addx_out_aag(X, Y, Z)
U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) → addz_out_aag(zero(X), one(Y), one(Z))
U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addy_out_aag(X, Y, Z)
U12_agg(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_agg(one(X), zero(Y), one(Z))
addz_in_agg(one(X), one(Y), zero(Z)) → U13_agg(X, Y, Z, addc_in_aga(X, Y, Z))
U13_agg(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_agg(one(X), one(Y), zero(Z))
U6_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → addx_out_agg(X, Y, Z)
U11_agg(X, Y, Z, addx_out_agg(X, Y, Z)) → addz_out_agg(zero(X), one(Y), one(Z))
U3_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → add_out_agg(X, Y, Z)
U37_aag(R, S, RSS, add_out_agg(S, zero(RS), RSS)) → times_out_aag(one(R), S, RSS)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
SUCC_IN_GA(one(X), zero(Z)) → SUCC_IN_GA(X, Z)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
SUCC_IN_GA(one(X)) → SUCC_IN_GA(X)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
SUCC_IN_AA(one(X), zero(Z)) → SUCC_IN_AA(X, Z)
times_in_aag(one(b), X, X) → times_out_aag(one(b), X, X)
times_in_aag(zero(R), S, zero(RS)) → U35_aag(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(b), X, X) → times_out_aaa(one(b), X, X)
times_in_aaa(zero(R), S, zero(RS)) → U35_aaa(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(R), S, RSS) → U36_aaa(R, S, RSS, times_in_aaa(R, S, RS))
U36_aaa(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aaa(R, S, RSS, add_in_aga(S, zero(RS), RSS))
add_in_aga(b, b, b) → add_out_aga(b, b, b)
add_in_aga(X, b, X) → U1_aga(X, binaryZ_in_a(X))
binaryZ_in_a(zero(X)) → U29_a(X, binaryZ_in_a(X))
binaryZ_in_a(one(X)) → U30_a(X, binary_in_a(X))
binary_in_a(b) → binary_out_a(b)
binary_in_a(zero(X)) → U27_a(X, binaryZ_in_a(X))
U27_a(X, binaryZ_out_a(X)) → binary_out_a(zero(X))
binary_in_a(one(X)) → U28_a(X, binary_in_a(X))
U28_a(X, binary_out_a(X)) → binary_out_a(one(X))
U30_a(X, binary_out_a(X)) → binaryZ_out_a(one(X))
U29_a(X, binaryZ_out_a(X)) → binaryZ_out_a(zero(X))
U1_aga(X, binaryZ_out_a(X)) → add_out_aga(X, b, X)
add_in_aga(b, Y, Y) → U2_aga(Y, binaryZ_in_g(Y))
binaryZ_in_g(zero(X)) → U29_g(X, binaryZ_in_a(X))
U29_g(X, binaryZ_out_a(X)) → binaryZ_out_g(zero(X))
binaryZ_in_g(one(X)) → U30_g(X, binary_in_g(X))
binary_in_g(b) → binary_out_g(b)
binary_in_g(zero(X)) → U27_g(X, binaryZ_in_a(X))
U27_g(X, binaryZ_out_a(X)) → binary_out_g(zero(X))
binary_in_g(one(X)) → U28_g(X, binary_in_g(X))
U28_g(X, binary_out_g(X)) → binary_out_g(one(X))
U30_g(X, binary_out_g(X)) → binaryZ_out_g(one(X))
U2_aga(Y, binaryZ_out_g(Y)) → add_out_aga(b, Y, Y)
add_in_aga(X, Y, Z) → U3_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(zero(X), zero(Y), zero(Z)) → U10_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), zero(Y), zero(Z)) → U10_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), one(Y), one(Z)) → U11_aaa(X, Y, Z, addx_in_aaa(X, Y, Z))
addx_in_aaa(one(X), b, one(X)) → U4_aaa(X, binary_in_a(X))
U4_aaa(X, binary_out_a(X)) → addx_out_aaa(one(X), b, one(X))
addx_in_aaa(zero(X), b, zero(X)) → U5_aaa(X, binaryZ_in_a(X))
U5_aaa(X, binaryZ_out_a(X)) → addx_out_aaa(zero(X), b, zero(X))
addx_in_aaa(X, Y, Z) → U6_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), zero(Y), one(Z)) → U12_aaa(X, Y, Z, addy_in_aaa(X, Y, Z))
addy_in_aaa(b, one(Y), one(Y)) → U7_aaa(Y, binary_in_a(Y))
U7_aaa(Y, binary_out_a(Y)) → addy_out_aaa(b, one(Y), one(Y))
addy_in_aaa(b, zero(Y), zero(Y)) → U8_aaa(Y, binaryZ_in_a(Y))
U8_aaa(Y, binaryZ_out_a(Y)) → addy_out_aaa(b, zero(Y), zero(Y))
addy_in_aaa(X, Y, Z) → U9_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), one(Y), zero(Z)) → U13_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
addc_in_aaa(b, b, one(b)) → addc_out_aaa(b, b, one(b))
addc_in_aaa(X, b, Z) → U14_aaa(X, Z, succZ_in_aa(X, Z))
succZ_in_aa(zero(X), one(X)) → U33_aa(X, binaryZ_in_a(X))
U33_aa(X, binaryZ_out_a(X)) → succZ_out_aa(zero(X), one(X))
succZ_in_aa(one(X), zero(Z)) → U34_aa(X, Z, succ_in_aa(X, Z))
succ_in_aa(b, one(b)) → succ_out_aa(b, one(b))
succ_in_aa(zero(X), one(X)) → U31_aa(X, binaryZ_in_a(X))
U31_aa(X, binaryZ_out_a(X)) → succ_out_aa(zero(X), one(X))
succ_in_aa(one(X), zero(Z)) → U32_aa(X, Z, succ_in_aa(X, Z))
U32_aa(X, Z, succ_out_aa(X, Z)) → succ_out_aa(one(X), zero(Z))
U34_aa(X, Z, succ_out_aa(X, Z)) → succZ_out_aa(one(X), zero(Z))
U14_aaa(X, Z, succZ_out_aa(X, Z)) → addc_out_aaa(X, b, Z)
addc_in_aaa(b, Y, Z) → U15_aaa(Y, Z, succZ_in_aa(Y, Z))
U15_aaa(Y, Z, succZ_out_aa(Y, Z)) → addc_out_aaa(b, Y, Z)
addc_in_aaa(X, Y, Z) → U16_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(zero(X), zero(Y), one(Z)) → U23_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), zero(Y), one(Z))
addC_in_aaa(zero(X), one(Y), zero(Z)) → U24_aaa(X, Y, Z, addX_in_aaa(X, Y, Z))
addX_in_aaa(zero(X), b, one(X)) → U17_aaa(X, binaryZ_in_a(X))
U17_aaa(X, binaryZ_out_a(X)) → addX_out_aaa(zero(X), b, one(X))
addX_in_aaa(one(X), b, zero(Z)) → U18_aaa(X, Z, succ_in_aa(X, Z))
U18_aaa(X, Z, succ_out_aa(X, Z)) → addX_out_aaa(one(X), b, zero(Z))
addX_in_aaa(X, Y, Z) → U19_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), zero(Y), zero(Z)) → U25_aaa(X, Y, Z, addY_in_aaa(X, Y, Z))
addY_in_aaa(b, zero(Y), one(Y)) → U20_aaa(Y, binaryZ_in_a(Y))
U20_aaa(Y, binaryZ_out_a(Y)) → addY_out_aaa(b, zero(Y), one(Y))
addY_in_aaa(b, one(Y), zero(Z)) → U21_aaa(Y, Z, succ_in_aa(Y, Z))
U21_aaa(Y, Z, succ_out_aa(Y, Z)) → addY_out_aaa(b, one(Y), zero(Z))
addY_in_aaa(X, Y, Z) → U22_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), one(Y), one(Z)) → U26_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
U26_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), one(Y), one(Z))
U22_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addY_out_aaa(X, Y, Z)
U25_aaa(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), zero(Y), zero(Z))
U19_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addX_out_aaa(X, Y, Z)
U24_aaa(X, Y, Z, addX_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), one(Y), zero(Z))
U16_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addc_out_aaa(X, Y, Z)
U13_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), one(Y), zero(Z))
U9_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addy_out_aaa(X, Y, Z)
U12_aaa(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), zero(Y), one(Z))
U6_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addx_out_aaa(X, Y, Z)
U11_aaa(X, Y, Z, addx_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), one(Y), one(Z))
U10_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), zero(Y), zero(Z))
U10_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aga(zero(X), zero(Y), zero(Z))
addz_in_aga(zero(X), one(Y), one(Z)) → U11_aga(X, Y, Z, addx_in_aga(X, Y, Z))
addx_in_aga(one(X), b, one(X)) → U4_aga(X, binary_in_a(X))
U4_aga(X, binary_out_a(X)) → addx_out_aga(one(X), b, one(X))
addx_in_aga(zero(X), b, zero(X)) → U5_aga(X, binaryZ_in_a(X))
U5_aga(X, binaryZ_out_a(X)) → addx_out_aga(zero(X), b, zero(X))
addx_in_aga(X, Y, Z) → U6_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(one(X), zero(Y), one(Z)) → U12_aga(X, Y, Z, addy_in_aaa(X, Y, Z))
U12_aga(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aga(one(X), zero(Y), one(Z))
addz_in_aga(one(X), one(Y), zero(Z)) → U13_aga(X, Y, Z, addc_in_aga(X, Y, Z))
addc_in_aga(b, b, one(b)) → addc_out_aga(b, b, one(b))
addc_in_aga(X, b, Z) → U14_aga(X, Z, succZ_in_aa(X, Z))
U14_aga(X, Z, succZ_out_aa(X, Z)) → addc_out_aga(X, b, Z)
addc_in_aga(b, Y, Z) → U15_aga(Y, Z, succZ_in_ga(Y, Z))
succZ_in_ga(zero(X), one(X)) → U33_ga(X, binaryZ_in_a(X))
U33_ga(X, binaryZ_out_a(X)) → succZ_out_ga(zero(X), one(X))
succZ_in_ga(one(X), zero(Z)) → U34_ga(X, Z, succ_in_ga(X, Z))
succ_in_ga(b, one(b)) → succ_out_ga(b, one(b))
succ_in_ga(zero(X), one(X)) → U31_ga(X, binaryZ_in_a(X))
U31_ga(X, binaryZ_out_a(X)) → succ_out_ga(zero(X), one(X))
succ_in_ga(one(X), zero(Z)) → U32_ga(X, Z, succ_in_ga(X, Z))
U32_ga(X, Z, succ_out_ga(X, Z)) → succ_out_ga(one(X), zero(Z))
U34_ga(X, Z, succ_out_ga(X, Z)) → succZ_out_ga(one(X), zero(Z))
U15_aga(Y, Z, succZ_out_ga(Y, Z)) → addc_out_aga(b, Y, Z)
addc_in_aga(X, Y, Z) → U16_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(zero(X), zero(Y), one(Z)) → U23_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aga(zero(X), zero(Y), one(Z))
addC_in_aga(zero(X), one(Y), zero(Z)) → U24_aga(X, Y, Z, addX_in_aga(X, Y, Z))
addX_in_aga(zero(X), b, one(X)) → U17_aga(X, binaryZ_in_a(X))
U17_aga(X, binaryZ_out_a(X)) → addX_out_aga(zero(X), b, one(X))
addX_in_aga(one(X), b, zero(Z)) → U18_aga(X, Z, succ_in_aa(X, Z))
U18_aga(X, Z, succ_out_aa(X, Z)) → addX_out_aga(one(X), b, zero(Z))
addX_in_aga(X, Y, Z) → U19_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(one(X), zero(Y), zero(Z)) → U25_aga(X, Y, Z, addY_in_aaa(X, Y, Z))
U25_aga(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aga(one(X), zero(Y), zero(Z))
addC_in_aga(one(X), one(Y), one(Z)) → U26_aga(X, Y, Z, addc_in_aga(X, Y, Z))
U26_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addC_out_aga(one(X), one(Y), one(Z))
U19_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addX_out_aga(X, Y, Z)
U24_aga(X, Y, Z, addX_out_aga(X, Y, Z)) → addC_out_aga(zero(X), one(Y), zero(Z))
U16_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addc_out_aga(X, Y, Z)
U13_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_aga(one(X), one(Y), zero(Z))
U6_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → addx_out_aga(X, Y, Z)
U11_aga(X, Y, Z, addx_out_aga(X, Y, Z)) → addz_out_aga(zero(X), one(Y), one(Z))
U3_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → add_out_aga(X, Y, Z)
U37_aaa(R, S, RSS, add_out_aga(S, zero(RS), RSS)) → times_out_aaa(one(R), S, RSS)
U35_aaa(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aaa(zero(R), S, zero(RS))
U35_aag(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aag(zero(R), S, zero(RS))
times_in_aag(one(R), S, RSS) → U36_aag(R, S, RSS, times_in_aaa(R, S, RS))
U36_aag(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aag(R, S, RSS, add_in_agg(S, zero(RS), RSS))
add_in_agg(b, b, b) → add_out_agg(b, b, b)
add_in_agg(X, b, X) → U1_agg(X, binaryZ_in_g(X))
U1_agg(X, binaryZ_out_g(X)) → add_out_agg(X, b, X)
add_in_agg(b, Y, Y) → U2_agg(Y, binaryZ_in_g(Y))
U2_agg(Y, binaryZ_out_g(Y)) → add_out_agg(b, Y, Y)
add_in_agg(X, Y, Z) → U3_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(zero(X), zero(Y), zero(Z)) → U10_agg(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_agg(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_agg(zero(X), zero(Y), zero(Z))
addz_in_agg(zero(X), one(Y), one(Z)) → U11_agg(X, Y, Z, addx_in_agg(X, Y, Z))
addx_in_agg(one(X), b, one(X)) → U4_agg(X, binary_in_g(X))
U4_agg(X, binary_out_g(X)) → addx_out_agg(one(X), b, one(X))
addx_in_agg(zero(X), b, zero(X)) → U5_agg(X, binaryZ_in_a(X))
U5_agg(X, binaryZ_out_a(X)) → addx_out_agg(zero(X), b, zero(X))
addx_in_agg(X, Y, Z) → U6_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(one(X), zero(Y), one(Z)) → U12_agg(X, Y, Z, addy_in_aag(X, Y, Z))
addy_in_aag(b, one(Y), one(Y)) → U7_aag(Y, binary_in_g(Y))
U7_aag(Y, binary_out_g(Y)) → addy_out_aag(b, one(Y), one(Y))
addy_in_aag(b, zero(Y), zero(Y)) → U8_aag(Y, binaryZ_in_a(Y))
U8_aag(Y, binaryZ_out_a(Y)) → addy_out_aag(b, zero(Y), zero(Y))
addy_in_aag(X, Y, Z) → U9_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(zero(X), zero(Y), zero(Z)) → U10_aag(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_aag(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aag(zero(X), zero(Y), zero(Z))
addz_in_aag(zero(X), one(Y), one(Z)) → U11_aag(X, Y, Z, addx_in_aag(X, Y, Z))
addx_in_aag(one(X), b, one(X)) → U4_aag(X, binary_in_g(X))
U4_aag(X, binary_out_g(X)) → addx_out_aag(one(X), b, one(X))
addx_in_aag(zero(X), b, zero(X)) → U5_aag(X, binaryZ_in_a(X))
U5_aag(X, binaryZ_out_a(X)) → addx_out_aag(zero(X), b, zero(X))
addx_in_aag(X, Y, Z) → U6_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(one(X), zero(Y), one(Z)) → U12_aag(X, Y, Z, addy_in_aag(X, Y, Z))
U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_aag(one(X), zero(Y), one(Z))
addz_in_aag(one(X), one(Y), zero(Z)) → U13_aag(X, Y, Z, addc_in_aaa(X, Y, Z))
U13_aag(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aag(one(X), one(Y), zero(Z))
U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addx_out_aag(X, Y, Z)
U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) → addz_out_aag(zero(X), one(Y), one(Z))
U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addy_out_aag(X, Y, Z)
U12_agg(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_agg(one(X), zero(Y), one(Z))
addz_in_agg(one(X), one(Y), zero(Z)) → U13_agg(X, Y, Z, addc_in_aga(X, Y, Z))
U13_agg(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_agg(one(X), one(Y), zero(Z))
U6_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → addx_out_agg(X, Y, Z)
U11_agg(X, Y, Z, addx_out_agg(X, Y, Z)) → addz_out_agg(zero(X), one(Y), one(Z))
U3_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → add_out_agg(X, Y, Z)
U37_aag(R, S, RSS, add_out_agg(S, zero(RS), RSS)) → times_out_aag(one(R), S, RSS)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
SUCC_IN_AA(one(X), zero(Z)) → SUCC_IN_AA(X, Z)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
SUCC_IN_AA → SUCC_IN_AA
SUCC_IN_AA → SUCC_IN_AA
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
ADDZ_IN_AAA(one(X), zero(Y), one(Z)) → ADDY_IN_AAA(X, Y, Z)
ADDY_IN_AAA(X, Y, Z) → ADDZ_IN_AAA(X, Y, Z)
ADDY_IN_AAA1(X, Y, Z) → ADDC_IN_AAA1(X, Y, Z)
ADDX_IN_AAA1(X, Y, Z) → ADDC_IN_AAA1(X, Y, Z)
ADDC_IN_AAA1(one(X), one(Y), one(Z)) → ADDC_IN_AAA(X, Y, Z)
ADDC_IN_AAA1(one(X), zero(Y), zero(Z)) → ADDY_IN_AAA1(X, Y, Z)
ADDC_IN_AAA1(zero(X), one(Y), zero(Z)) → ADDX_IN_AAA1(X, Y, Z)
ADDZ_IN_AAA(one(X), one(Y), zero(Z)) → ADDC_IN_AAA(X, Y, Z)
ADDZ_IN_AAA(zero(X), zero(Y), zero(Z)) → ADDZ_IN_AAA(X, Y, Z)
ADDX_IN_AAA(X, Y, Z) → ADDZ_IN_AAA(X, Y, Z)
ADDC_IN_AAA1(zero(X), zero(Y), one(Z)) → ADDZ_IN_AAA(X, Y, Z)
ADDC_IN_AAA(X, Y, Z) → ADDC_IN_AAA1(X, Y, Z)
ADDZ_IN_AAA(zero(X), one(Y), one(Z)) → ADDX_IN_AAA(X, Y, Z)
times_in_aag(one(b), X, X) → times_out_aag(one(b), X, X)
times_in_aag(zero(R), S, zero(RS)) → U35_aag(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(b), X, X) → times_out_aaa(one(b), X, X)
times_in_aaa(zero(R), S, zero(RS)) → U35_aaa(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(R), S, RSS) → U36_aaa(R, S, RSS, times_in_aaa(R, S, RS))
U36_aaa(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aaa(R, S, RSS, add_in_aga(S, zero(RS), RSS))
add_in_aga(b, b, b) → add_out_aga(b, b, b)
add_in_aga(X, b, X) → U1_aga(X, binaryZ_in_a(X))
binaryZ_in_a(zero(X)) → U29_a(X, binaryZ_in_a(X))
binaryZ_in_a(one(X)) → U30_a(X, binary_in_a(X))
binary_in_a(b) → binary_out_a(b)
binary_in_a(zero(X)) → U27_a(X, binaryZ_in_a(X))
U27_a(X, binaryZ_out_a(X)) → binary_out_a(zero(X))
binary_in_a(one(X)) → U28_a(X, binary_in_a(X))
U28_a(X, binary_out_a(X)) → binary_out_a(one(X))
U30_a(X, binary_out_a(X)) → binaryZ_out_a(one(X))
U29_a(X, binaryZ_out_a(X)) → binaryZ_out_a(zero(X))
U1_aga(X, binaryZ_out_a(X)) → add_out_aga(X, b, X)
add_in_aga(b, Y, Y) → U2_aga(Y, binaryZ_in_g(Y))
binaryZ_in_g(zero(X)) → U29_g(X, binaryZ_in_a(X))
U29_g(X, binaryZ_out_a(X)) → binaryZ_out_g(zero(X))
binaryZ_in_g(one(X)) → U30_g(X, binary_in_g(X))
binary_in_g(b) → binary_out_g(b)
binary_in_g(zero(X)) → U27_g(X, binaryZ_in_a(X))
U27_g(X, binaryZ_out_a(X)) → binary_out_g(zero(X))
binary_in_g(one(X)) → U28_g(X, binary_in_g(X))
U28_g(X, binary_out_g(X)) → binary_out_g(one(X))
U30_g(X, binary_out_g(X)) → binaryZ_out_g(one(X))
U2_aga(Y, binaryZ_out_g(Y)) → add_out_aga(b, Y, Y)
add_in_aga(X, Y, Z) → U3_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(zero(X), zero(Y), zero(Z)) → U10_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), zero(Y), zero(Z)) → U10_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), one(Y), one(Z)) → U11_aaa(X, Y, Z, addx_in_aaa(X, Y, Z))
addx_in_aaa(one(X), b, one(X)) → U4_aaa(X, binary_in_a(X))
U4_aaa(X, binary_out_a(X)) → addx_out_aaa(one(X), b, one(X))
addx_in_aaa(zero(X), b, zero(X)) → U5_aaa(X, binaryZ_in_a(X))
U5_aaa(X, binaryZ_out_a(X)) → addx_out_aaa(zero(X), b, zero(X))
addx_in_aaa(X, Y, Z) → U6_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), zero(Y), one(Z)) → U12_aaa(X, Y, Z, addy_in_aaa(X, Y, Z))
addy_in_aaa(b, one(Y), one(Y)) → U7_aaa(Y, binary_in_a(Y))
U7_aaa(Y, binary_out_a(Y)) → addy_out_aaa(b, one(Y), one(Y))
addy_in_aaa(b, zero(Y), zero(Y)) → U8_aaa(Y, binaryZ_in_a(Y))
U8_aaa(Y, binaryZ_out_a(Y)) → addy_out_aaa(b, zero(Y), zero(Y))
addy_in_aaa(X, Y, Z) → U9_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), one(Y), zero(Z)) → U13_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
addc_in_aaa(b, b, one(b)) → addc_out_aaa(b, b, one(b))
addc_in_aaa(X, b, Z) → U14_aaa(X, Z, succZ_in_aa(X, Z))
succZ_in_aa(zero(X), one(X)) → U33_aa(X, binaryZ_in_a(X))
U33_aa(X, binaryZ_out_a(X)) → succZ_out_aa(zero(X), one(X))
succZ_in_aa(one(X), zero(Z)) → U34_aa(X, Z, succ_in_aa(X, Z))
succ_in_aa(b, one(b)) → succ_out_aa(b, one(b))
succ_in_aa(zero(X), one(X)) → U31_aa(X, binaryZ_in_a(X))
U31_aa(X, binaryZ_out_a(X)) → succ_out_aa(zero(X), one(X))
succ_in_aa(one(X), zero(Z)) → U32_aa(X, Z, succ_in_aa(X, Z))
U32_aa(X, Z, succ_out_aa(X, Z)) → succ_out_aa(one(X), zero(Z))
U34_aa(X, Z, succ_out_aa(X, Z)) → succZ_out_aa(one(X), zero(Z))
U14_aaa(X, Z, succZ_out_aa(X, Z)) → addc_out_aaa(X, b, Z)
addc_in_aaa(b, Y, Z) → U15_aaa(Y, Z, succZ_in_aa(Y, Z))
U15_aaa(Y, Z, succZ_out_aa(Y, Z)) → addc_out_aaa(b, Y, Z)
addc_in_aaa(X, Y, Z) → U16_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(zero(X), zero(Y), one(Z)) → U23_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), zero(Y), one(Z))
addC_in_aaa(zero(X), one(Y), zero(Z)) → U24_aaa(X, Y, Z, addX_in_aaa(X, Y, Z))
addX_in_aaa(zero(X), b, one(X)) → U17_aaa(X, binaryZ_in_a(X))
U17_aaa(X, binaryZ_out_a(X)) → addX_out_aaa(zero(X), b, one(X))
addX_in_aaa(one(X), b, zero(Z)) → U18_aaa(X, Z, succ_in_aa(X, Z))
U18_aaa(X, Z, succ_out_aa(X, Z)) → addX_out_aaa(one(X), b, zero(Z))
addX_in_aaa(X, Y, Z) → U19_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), zero(Y), zero(Z)) → U25_aaa(X, Y, Z, addY_in_aaa(X, Y, Z))
addY_in_aaa(b, zero(Y), one(Y)) → U20_aaa(Y, binaryZ_in_a(Y))
U20_aaa(Y, binaryZ_out_a(Y)) → addY_out_aaa(b, zero(Y), one(Y))
addY_in_aaa(b, one(Y), zero(Z)) → U21_aaa(Y, Z, succ_in_aa(Y, Z))
U21_aaa(Y, Z, succ_out_aa(Y, Z)) → addY_out_aaa(b, one(Y), zero(Z))
addY_in_aaa(X, Y, Z) → U22_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), one(Y), one(Z)) → U26_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
U26_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), one(Y), one(Z))
U22_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addY_out_aaa(X, Y, Z)
U25_aaa(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), zero(Y), zero(Z))
U19_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addX_out_aaa(X, Y, Z)
U24_aaa(X, Y, Z, addX_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), one(Y), zero(Z))
U16_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addc_out_aaa(X, Y, Z)
U13_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), one(Y), zero(Z))
U9_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addy_out_aaa(X, Y, Z)
U12_aaa(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), zero(Y), one(Z))
U6_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addx_out_aaa(X, Y, Z)
U11_aaa(X, Y, Z, addx_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), one(Y), one(Z))
U10_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), zero(Y), zero(Z))
U10_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aga(zero(X), zero(Y), zero(Z))
addz_in_aga(zero(X), one(Y), one(Z)) → U11_aga(X, Y, Z, addx_in_aga(X, Y, Z))
addx_in_aga(one(X), b, one(X)) → U4_aga(X, binary_in_a(X))
U4_aga(X, binary_out_a(X)) → addx_out_aga(one(X), b, one(X))
addx_in_aga(zero(X), b, zero(X)) → U5_aga(X, binaryZ_in_a(X))
U5_aga(X, binaryZ_out_a(X)) → addx_out_aga(zero(X), b, zero(X))
addx_in_aga(X, Y, Z) → U6_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(one(X), zero(Y), one(Z)) → U12_aga(X, Y, Z, addy_in_aaa(X, Y, Z))
U12_aga(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aga(one(X), zero(Y), one(Z))
addz_in_aga(one(X), one(Y), zero(Z)) → U13_aga(X, Y, Z, addc_in_aga(X, Y, Z))
addc_in_aga(b, b, one(b)) → addc_out_aga(b, b, one(b))
addc_in_aga(X, b, Z) → U14_aga(X, Z, succZ_in_aa(X, Z))
U14_aga(X, Z, succZ_out_aa(X, Z)) → addc_out_aga(X, b, Z)
addc_in_aga(b, Y, Z) → U15_aga(Y, Z, succZ_in_ga(Y, Z))
succZ_in_ga(zero(X), one(X)) → U33_ga(X, binaryZ_in_a(X))
U33_ga(X, binaryZ_out_a(X)) → succZ_out_ga(zero(X), one(X))
succZ_in_ga(one(X), zero(Z)) → U34_ga(X, Z, succ_in_ga(X, Z))
succ_in_ga(b, one(b)) → succ_out_ga(b, one(b))
succ_in_ga(zero(X), one(X)) → U31_ga(X, binaryZ_in_a(X))
U31_ga(X, binaryZ_out_a(X)) → succ_out_ga(zero(X), one(X))
succ_in_ga(one(X), zero(Z)) → U32_ga(X, Z, succ_in_ga(X, Z))
U32_ga(X, Z, succ_out_ga(X, Z)) → succ_out_ga(one(X), zero(Z))
U34_ga(X, Z, succ_out_ga(X, Z)) → succZ_out_ga(one(X), zero(Z))
U15_aga(Y, Z, succZ_out_ga(Y, Z)) → addc_out_aga(b, Y, Z)
addc_in_aga(X, Y, Z) → U16_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(zero(X), zero(Y), one(Z)) → U23_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aga(zero(X), zero(Y), one(Z))
addC_in_aga(zero(X), one(Y), zero(Z)) → U24_aga(X, Y, Z, addX_in_aga(X, Y, Z))
addX_in_aga(zero(X), b, one(X)) → U17_aga(X, binaryZ_in_a(X))
U17_aga(X, binaryZ_out_a(X)) → addX_out_aga(zero(X), b, one(X))
addX_in_aga(one(X), b, zero(Z)) → U18_aga(X, Z, succ_in_aa(X, Z))
U18_aga(X, Z, succ_out_aa(X, Z)) → addX_out_aga(one(X), b, zero(Z))
addX_in_aga(X, Y, Z) → U19_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(one(X), zero(Y), zero(Z)) → U25_aga(X, Y, Z, addY_in_aaa(X, Y, Z))
U25_aga(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aga(one(X), zero(Y), zero(Z))
addC_in_aga(one(X), one(Y), one(Z)) → U26_aga(X, Y, Z, addc_in_aga(X, Y, Z))
U26_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addC_out_aga(one(X), one(Y), one(Z))
U19_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addX_out_aga(X, Y, Z)
U24_aga(X, Y, Z, addX_out_aga(X, Y, Z)) → addC_out_aga(zero(X), one(Y), zero(Z))
U16_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addc_out_aga(X, Y, Z)
U13_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_aga(one(X), one(Y), zero(Z))
U6_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → addx_out_aga(X, Y, Z)
U11_aga(X, Y, Z, addx_out_aga(X, Y, Z)) → addz_out_aga(zero(X), one(Y), one(Z))
U3_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → add_out_aga(X, Y, Z)
U37_aaa(R, S, RSS, add_out_aga(S, zero(RS), RSS)) → times_out_aaa(one(R), S, RSS)
U35_aaa(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aaa(zero(R), S, zero(RS))
U35_aag(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aag(zero(R), S, zero(RS))
times_in_aag(one(R), S, RSS) → U36_aag(R, S, RSS, times_in_aaa(R, S, RS))
U36_aag(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aag(R, S, RSS, add_in_agg(S, zero(RS), RSS))
add_in_agg(b, b, b) → add_out_agg(b, b, b)
add_in_agg(X, b, X) → U1_agg(X, binaryZ_in_g(X))
U1_agg(X, binaryZ_out_g(X)) → add_out_agg(X, b, X)
add_in_agg(b, Y, Y) → U2_agg(Y, binaryZ_in_g(Y))
U2_agg(Y, binaryZ_out_g(Y)) → add_out_agg(b, Y, Y)
add_in_agg(X, Y, Z) → U3_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(zero(X), zero(Y), zero(Z)) → U10_agg(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_agg(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_agg(zero(X), zero(Y), zero(Z))
addz_in_agg(zero(X), one(Y), one(Z)) → U11_agg(X, Y, Z, addx_in_agg(X, Y, Z))
addx_in_agg(one(X), b, one(X)) → U4_agg(X, binary_in_g(X))
U4_agg(X, binary_out_g(X)) → addx_out_agg(one(X), b, one(X))
addx_in_agg(zero(X), b, zero(X)) → U5_agg(X, binaryZ_in_a(X))
U5_agg(X, binaryZ_out_a(X)) → addx_out_agg(zero(X), b, zero(X))
addx_in_agg(X, Y, Z) → U6_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(one(X), zero(Y), one(Z)) → U12_agg(X, Y, Z, addy_in_aag(X, Y, Z))
addy_in_aag(b, one(Y), one(Y)) → U7_aag(Y, binary_in_g(Y))
U7_aag(Y, binary_out_g(Y)) → addy_out_aag(b, one(Y), one(Y))
addy_in_aag(b, zero(Y), zero(Y)) → U8_aag(Y, binaryZ_in_a(Y))
U8_aag(Y, binaryZ_out_a(Y)) → addy_out_aag(b, zero(Y), zero(Y))
addy_in_aag(X, Y, Z) → U9_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(zero(X), zero(Y), zero(Z)) → U10_aag(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_aag(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aag(zero(X), zero(Y), zero(Z))
addz_in_aag(zero(X), one(Y), one(Z)) → U11_aag(X, Y, Z, addx_in_aag(X, Y, Z))
addx_in_aag(one(X), b, one(X)) → U4_aag(X, binary_in_g(X))
U4_aag(X, binary_out_g(X)) → addx_out_aag(one(X), b, one(X))
addx_in_aag(zero(X), b, zero(X)) → U5_aag(X, binaryZ_in_a(X))
U5_aag(X, binaryZ_out_a(X)) → addx_out_aag(zero(X), b, zero(X))
addx_in_aag(X, Y, Z) → U6_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(one(X), zero(Y), one(Z)) → U12_aag(X, Y, Z, addy_in_aag(X, Y, Z))
U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_aag(one(X), zero(Y), one(Z))
addz_in_aag(one(X), one(Y), zero(Z)) → U13_aag(X, Y, Z, addc_in_aaa(X, Y, Z))
U13_aag(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aag(one(X), one(Y), zero(Z))
U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addx_out_aag(X, Y, Z)
U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) → addz_out_aag(zero(X), one(Y), one(Z))
U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addy_out_aag(X, Y, Z)
U12_agg(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_agg(one(X), zero(Y), one(Z))
addz_in_agg(one(X), one(Y), zero(Z)) → U13_agg(X, Y, Z, addc_in_aga(X, Y, Z))
U13_agg(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_agg(one(X), one(Y), zero(Z))
U6_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → addx_out_agg(X, Y, Z)
U11_agg(X, Y, Z, addx_out_agg(X, Y, Z)) → addz_out_agg(zero(X), one(Y), one(Z))
U3_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → add_out_agg(X, Y, Z)
U37_aag(R, S, RSS, add_out_agg(S, zero(RS), RSS)) → times_out_aag(one(R), S, RSS)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
ADDZ_IN_AAA(one(X), zero(Y), one(Z)) → ADDY_IN_AAA(X, Y, Z)
ADDY_IN_AAA(X, Y, Z) → ADDZ_IN_AAA(X, Y, Z)
ADDY_IN_AAA1(X, Y, Z) → ADDC_IN_AAA1(X, Y, Z)
ADDX_IN_AAA1(X, Y, Z) → ADDC_IN_AAA1(X, Y, Z)
ADDC_IN_AAA1(one(X), one(Y), one(Z)) → ADDC_IN_AAA(X, Y, Z)
ADDC_IN_AAA1(one(X), zero(Y), zero(Z)) → ADDY_IN_AAA1(X, Y, Z)
ADDC_IN_AAA1(zero(X), one(Y), zero(Z)) → ADDX_IN_AAA1(X, Y, Z)
ADDZ_IN_AAA(one(X), one(Y), zero(Z)) → ADDC_IN_AAA(X, Y, Z)
ADDZ_IN_AAA(zero(X), zero(Y), zero(Z)) → ADDZ_IN_AAA(X, Y, Z)
ADDX_IN_AAA(X, Y, Z) → ADDZ_IN_AAA(X, Y, Z)
ADDC_IN_AAA1(zero(X), zero(Y), one(Z)) → ADDZ_IN_AAA(X, Y, Z)
ADDC_IN_AAA(X, Y, Z) → ADDC_IN_AAA1(X, Y, Z)
ADDZ_IN_AAA(zero(X), one(Y), one(Z)) → ADDX_IN_AAA(X, Y, Z)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
ADDC_IN_AAA1 → ADDC_IN_AAA
ADDC_IN_AAA1 → ADDX_IN_AAA1
ADDC_IN_AAA → ADDC_IN_AAA1
ADDC_IN_AAA1 → ADDZ_IN_AAA
ADDZ_IN_AAA → ADDX_IN_AAA
ADDY_IN_AAA → ADDZ_IN_AAA
ADDX_IN_AAA → ADDZ_IN_AAA
ADDZ_IN_AAA → ADDY_IN_AAA
ADDY_IN_AAA1 → ADDC_IN_AAA1
ADDZ_IN_AAA → ADDC_IN_AAA
ADDC_IN_AAA1 → ADDY_IN_AAA1
ADDZ_IN_AAA → ADDZ_IN_AAA
ADDX_IN_AAA1 → ADDC_IN_AAA1
ADDC_IN_AAA1 → ADDC_IN_AAA
ADDC_IN_AAA1 → ADDX_IN_AAA1
ADDC_IN_AAA → ADDC_IN_AAA1
ADDC_IN_AAA1 → ADDZ_IN_AAA
ADDZ_IN_AAA → ADDX_IN_AAA
ADDY_IN_AAA → ADDZ_IN_AAA
ADDX_IN_AAA → ADDZ_IN_AAA
ADDZ_IN_AAA → ADDY_IN_AAA
ADDY_IN_AAA1 → ADDC_IN_AAA1
ADDZ_IN_AAA → ADDC_IN_AAA
ADDC_IN_AAA1 → ADDY_IN_AAA1
ADDZ_IN_AAA → ADDZ_IN_AAA
ADDX_IN_AAA1 → ADDC_IN_AAA1
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
ADDX_IN_AGA1(X, Y, Z) → ADDC_IN_AGA1(X, Y, Z)
ADDC_IN_AGA(X, Y, Z) → ADDC_IN_AGA1(X, Y, Z)
ADDC_IN_AGA1(one(X), one(Y), one(Z)) → ADDC_IN_AGA(X, Y, Z)
ADDC_IN_AGA1(zero(X), one(Y), zero(Z)) → ADDX_IN_AGA1(X, Y, Z)
times_in_aag(one(b), X, X) → times_out_aag(one(b), X, X)
times_in_aag(zero(R), S, zero(RS)) → U35_aag(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(b), X, X) → times_out_aaa(one(b), X, X)
times_in_aaa(zero(R), S, zero(RS)) → U35_aaa(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(R), S, RSS) → U36_aaa(R, S, RSS, times_in_aaa(R, S, RS))
U36_aaa(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aaa(R, S, RSS, add_in_aga(S, zero(RS), RSS))
add_in_aga(b, b, b) → add_out_aga(b, b, b)
add_in_aga(X, b, X) → U1_aga(X, binaryZ_in_a(X))
binaryZ_in_a(zero(X)) → U29_a(X, binaryZ_in_a(X))
binaryZ_in_a(one(X)) → U30_a(X, binary_in_a(X))
binary_in_a(b) → binary_out_a(b)
binary_in_a(zero(X)) → U27_a(X, binaryZ_in_a(X))
U27_a(X, binaryZ_out_a(X)) → binary_out_a(zero(X))
binary_in_a(one(X)) → U28_a(X, binary_in_a(X))
U28_a(X, binary_out_a(X)) → binary_out_a(one(X))
U30_a(X, binary_out_a(X)) → binaryZ_out_a(one(X))
U29_a(X, binaryZ_out_a(X)) → binaryZ_out_a(zero(X))
U1_aga(X, binaryZ_out_a(X)) → add_out_aga(X, b, X)
add_in_aga(b, Y, Y) → U2_aga(Y, binaryZ_in_g(Y))
binaryZ_in_g(zero(X)) → U29_g(X, binaryZ_in_a(X))
U29_g(X, binaryZ_out_a(X)) → binaryZ_out_g(zero(X))
binaryZ_in_g(one(X)) → U30_g(X, binary_in_g(X))
binary_in_g(b) → binary_out_g(b)
binary_in_g(zero(X)) → U27_g(X, binaryZ_in_a(X))
U27_g(X, binaryZ_out_a(X)) → binary_out_g(zero(X))
binary_in_g(one(X)) → U28_g(X, binary_in_g(X))
U28_g(X, binary_out_g(X)) → binary_out_g(one(X))
U30_g(X, binary_out_g(X)) → binaryZ_out_g(one(X))
U2_aga(Y, binaryZ_out_g(Y)) → add_out_aga(b, Y, Y)
add_in_aga(X, Y, Z) → U3_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(zero(X), zero(Y), zero(Z)) → U10_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), zero(Y), zero(Z)) → U10_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), one(Y), one(Z)) → U11_aaa(X, Y, Z, addx_in_aaa(X, Y, Z))
addx_in_aaa(one(X), b, one(X)) → U4_aaa(X, binary_in_a(X))
U4_aaa(X, binary_out_a(X)) → addx_out_aaa(one(X), b, one(X))
addx_in_aaa(zero(X), b, zero(X)) → U5_aaa(X, binaryZ_in_a(X))
U5_aaa(X, binaryZ_out_a(X)) → addx_out_aaa(zero(X), b, zero(X))
addx_in_aaa(X, Y, Z) → U6_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), zero(Y), one(Z)) → U12_aaa(X, Y, Z, addy_in_aaa(X, Y, Z))
addy_in_aaa(b, one(Y), one(Y)) → U7_aaa(Y, binary_in_a(Y))
U7_aaa(Y, binary_out_a(Y)) → addy_out_aaa(b, one(Y), one(Y))
addy_in_aaa(b, zero(Y), zero(Y)) → U8_aaa(Y, binaryZ_in_a(Y))
U8_aaa(Y, binaryZ_out_a(Y)) → addy_out_aaa(b, zero(Y), zero(Y))
addy_in_aaa(X, Y, Z) → U9_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), one(Y), zero(Z)) → U13_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
addc_in_aaa(b, b, one(b)) → addc_out_aaa(b, b, one(b))
addc_in_aaa(X, b, Z) → U14_aaa(X, Z, succZ_in_aa(X, Z))
succZ_in_aa(zero(X), one(X)) → U33_aa(X, binaryZ_in_a(X))
U33_aa(X, binaryZ_out_a(X)) → succZ_out_aa(zero(X), one(X))
succZ_in_aa(one(X), zero(Z)) → U34_aa(X, Z, succ_in_aa(X, Z))
succ_in_aa(b, one(b)) → succ_out_aa(b, one(b))
succ_in_aa(zero(X), one(X)) → U31_aa(X, binaryZ_in_a(X))
U31_aa(X, binaryZ_out_a(X)) → succ_out_aa(zero(X), one(X))
succ_in_aa(one(X), zero(Z)) → U32_aa(X, Z, succ_in_aa(X, Z))
U32_aa(X, Z, succ_out_aa(X, Z)) → succ_out_aa(one(X), zero(Z))
U34_aa(X, Z, succ_out_aa(X, Z)) → succZ_out_aa(one(X), zero(Z))
U14_aaa(X, Z, succZ_out_aa(X, Z)) → addc_out_aaa(X, b, Z)
addc_in_aaa(b, Y, Z) → U15_aaa(Y, Z, succZ_in_aa(Y, Z))
U15_aaa(Y, Z, succZ_out_aa(Y, Z)) → addc_out_aaa(b, Y, Z)
addc_in_aaa(X, Y, Z) → U16_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(zero(X), zero(Y), one(Z)) → U23_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), zero(Y), one(Z))
addC_in_aaa(zero(X), one(Y), zero(Z)) → U24_aaa(X, Y, Z, addX_in_aaa(X, Y, Z))
addX_in_aaa(zero(X), b, one(X)) → U17_aaa(X, binaryZ_in_a(X))
U17_aaa(X, binaryZ_out_a(X)) → addX_out_aaa(zero(X), b, one(X))
addX_in_aaa(one(X), b, zero(Z)) → U18_aaa(X, Z, succ_in_aa(X, Z))
U18_aaa(X, Z, succ_out_aa(X, Z)) → addX_out_aaa(one(X), b, zero(Z))
addX_in_aaa(X, Y, Z) → U19_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), zero(Y), zero(Z)) → U25_aaa(X, Y, Z, addY_in_aaa(X, Y, Z))
addY_in_aaa(b, zero(Y), one(Y)) → U20_aaa(Y, binaryZ_in_a(Y))
U20_aaa(Y, binaryZ_out_a(Y)) → addY_out_aaa(b, zero(Y), one(Y))
addY_in_aaa(b, one(Y), zero(Z)) → U21_aaa(Y, Z, succ_in_aa(Y, Z))
U21_aaa(Y, Z, succ_out_aa(Y, Z)) → addY_out_aaa(b, one(Y), zero(Z))
addY_in_aaa(X, Y, Z) → U22_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), one(Y), one(Z)) → U26_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
U26_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), one(Y), one(Z))
U22_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addY_out_aaa(X, Y, Z)
U25_aaa(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), zero(Y), zero(Z))
U19_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addX_out_aaa(X, Y, Z)
U24_aaa(X, Y, Z, addX_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), one(Y), zero(Z))
U16_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addc_out_aaa(X, Y, Z)
U13_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), one(Y), zero(Z))
U9_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addy_out_aaa(X, Y, Z)
U12_aaa(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), zero(Y), one(Z))
U6_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addx_out_aaa(X, Y, Z)
U11_aaa(X, Y, Z, addx_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), one(Y), one(Z))
U10_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), zero(Y), zero(Z))
U10_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aga(zero(X), zero(Y), zero(Z))
addz_in_aga(zero(X), one(Y), one(Z)) → U11_aga(X, Y, Z, addx_in_aga(X, Y, Z))
addx_in_aga(one(X), b, one(X)) → U4_aga(X, binary_in_a(X))
U4_aga(X, binary_out_a(X)) → addx_out_aga(one(X), b, one(X))
addx_in_aga(zero(X), b, zero(X)) → U5_aga(X, binaryZ_in_a(X))
U5_aga(X, binaryZ_out_a(X)) → addx_out_aga(zero(X), b, zero(X))
addx_in_aga(X, Y, Z) → U6_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(one(X), zero(Y), one(Z)) → U12_aga(X, Y, Z, addy_in_aaa(X, Y, Z))
U12_aga(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aga(one(X), zero(Y), one(Z))
addz_in_aga(one(X), one(Y), zero(Z)) → U13_aga(X, Y, Z, addc_in_aga(X, Y, Z))
addc_in_aga(b, b, one(b)) → addc_out_aga(b, b, one(b))
addc_in_aga(X, b, Z) → U14_aga(X, Z, succZ_in_aa(X, Z))
U14_aga(X, Z, succZ_out_aa(X, Z)) → addc_out_aga(X, b, Z)
addc_in_aga(b, Y, Z) → U15_aga(Y, Z, succZ_in_ga(Y, Z))
succZ_in_ga(zero(X), one(X)) → U33_ga(X, binaryZ_in_a(X))
U33_ga(X, binaryZ_out_a(X)) → succZ_out_ga(zero(X), one(X))
succZ_in_ga(one(X), zero(Z)) → U34_ga(X, Z, succ_in_ga(X, Z))
succ_in_ga(b, one(b)) → succ_out_ga(b, one(b))
succ_in_ga(zero(X), one(X)) → U31_ga(X, binaryZ_in_a(X))
U31_ga(X, binaryZ_out_a(X)) → succ_out_ga(zero(X), one(X))
succ_in_ga(one(X), zero(Z)) → U32_ga(X, Z, succ_in_ga(X, Z))
U32_ga(X, Z, succ_out_ga(X, Z)) → succ_out_ga(one(X), zero(Z))
U34_ga(X, Z, succ_out_ga(X, Z)) → succZ_out_ga(one(X), zero(Z))
U15_aga(Y, Z, succZ_out_ga(Y, Z)) → addc_out_aga(b, Y, Z)
addc_in_aga(X, Y, Z) → U16_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(zero(X), zero(Y), one(Z)) → U23_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aga(zero(X), zero(Y), one(Z))
addC_in_aga(zero(X), one(Y), zero(Z)) → U24_aga(X, Y, Z, addX_in_aga(X, Y, Z))
addX_in_aga(zero(X), b, one(X)) → U17_aga(X, binaryZ_in_a(X))
U17_aga(X, binaryZ_out_a(X)) → addX_out_aga(zero(X), b, one(X))
addX_in_aga(one(X), b, zero(Z)) → U18_aga(X, Z, succ_in_aa(X, Z))
U18_aga(X, Z, succ_out_aa(X, Z)) → addX_out_aga(one(X), b, zero(Z))
addX_in_aga(X, Y, Z) → U19_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(one(X), zero(Y), zero(Z)) → U25_aga(X, Y, Z, addY_in_aaa(X, Y, Z))
U25_aga(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aga(one(X), zero(Y), zero(Z))
addC_in_aga(one(X), one(Y), one(Z)) → U26_aga(X, Y, Z, addc_in_aga(X, Y, Z))
U26_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addC_out_aga(one(X), one(Y), one(Z))
U19_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addX_out_aga(X, Y, Z)
U24_aga(X, Y, Z, addX_out_aga(X, Y, Z)) → addC_out_aga(zero(X), one(Y), zero(Z))
U16_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addc_out_aga(X, Y, Z)
U13_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_aga(one(X), one(Y), zero(Z))
U6_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → addx_out_aga(X, Y, Z)
U11_aga(X, Y, Z, addx_out_aga(X, Y, Z)) → addz_out_aga(zero(X), one(Y), one(Z))
U3_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → add_out_aga(X, Y, Z)
U37_aaa(R, S, RSS, add_out_aga(S, zero(RS), RSS)) → times_out_aaa(one(R), S, RSS)
U35_aaa(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aaa(zero(R), S, zero(RS))
U35_aag(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aag(zero(R), S, zero(RS))
times_in_aag(one(R), S, RSS) → U36_aag(R, S, RSS, times_in_aaa(R, S, RS))
U36_aag(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aag(R, S, RSS, add_in_agg(S, zero(RS), RSS))
add_in_agg(b, b, b) → add_out_agg(b, b, b)
add_in_agg(X, b, X) → U1_agg(X, binaryZ_in_g(X))
U1_agg(X, binaryZ_out_g(X)) → add_out_agg(X, b, X)
add_in_agg(b, Y, Y) → U2_agg(Y, binaryZ_in_g(Y))
U2_agg(Y, binaryZ_out_g(Y)) → add_out_agg(b, Y, Y)
add_in_agg(X, Y, Z) → U3_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(zero(X), zero(Y), zero(Z)) → U10_agg(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_agg(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_agg(zero(X), zero(Y), zero(Z))
addz_in_agg(zero(X), one(Y), one(Z)) → U11_agg(X, Y, Z, addx_in_agg(X, Y, Z))
addx_in_agg(one(X), b, one(X)) → U4_agg(X, binary_in_g(X))
U4_agg(X, binary_out_g(X)) → addx_out_agg(one(X), b, one(X))
addx_in_agg(zero(X), b, zero(X)) → U5_agg(X, binaryZ_in_a(X))
U5_agg(X, binaryZ_out_a(X)) → addx_out_agg(zero(X), b, zero(X))
addx_in_agg(X, Y, Z) → U6_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(one(X), zero(Y), one(Z)) → U12_agg(X, Y, Z, addy_in_aag(X, Y, Z))
addy_in_aag(b, one(Y), one(Y)) → U7_aag(Y, binary_in_g(Y))
U7_aag(Y, binary_out_g(Y)) → addy_out_aag(b, one(Y), one(Y))
addy_in_aag(b, zero(Y), zero(Y)) → U8_aag(Y, binaryZ_in_a(Y))
U8_aag(Y, binaryZ_out_a(Y)) → addy_out_aag(b, zero(Y), zero(Y))
addy_in_aag(X, Y, Z) → U9_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(zero(X), zero(Y), zero(Z)) → U10_aag(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_aag(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aag(zero(X), zero(Y), zero(Z))
addz_in_aag(zero(X), one(Y), one(Z)) → U11_aag(X, Y, Z, addx_in_aag(X, Y, Z))
addx_in_aag(one(X), b, one(X)) → U4_aag(X, binary_in_g(X))
U4_aag(X, binary_out_g(X)) → addx_out_aag(one(X), b, one(X))
addx_in_aag(zero(X), b, zero(X)) → U5_aag(X, binaryZ_in_a(X))
U5_aag(X, binaryZ_out_a(X)) → addx_out_aag(zero(X), b, zero(X))
addx_in_aag(X, Y, Z) → U6_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(one(X), zero(Y), one(Z)) → U12_aag(X, Y, Z, addy_in_aag(X, Y, Z))
U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_aag(one(X), zero(Y), one(Z))
addz_in_aag(one(X), one(Y), zero(Z)) → U13_aag(X, Y, Z, addc_in_aaa(X, Y, Z))
U13_aag(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aag(one(X), one(Y), zero(Z))
U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addx_out_aag(X, Y, Z)
U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) → addz_out_aag(zero(X), one(Y), one(Z))
U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addy_out_aag(X, Y, Z)
U12_agg(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_agg(one(X), zero(Y), one(Z))
addz_in_agg(one(X), one(Y), zero(Z)) → U13_agg(X, Y, Z, addc_in_aga(X, Y, Z))
U13_agg(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_agg(one(X), one(Y), zero(Z))
U6_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → addx_out_agg(X, Y, Z)
U11_agg(X, Y, Z, addx_out_agg(X, Y, Z)) → addz_out_agg(zero(X), one(Y), one(Z))
U3_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → add_out_agg(X, Y, Z)
U37_aag(R, S, RSS, add_out_agg(S, zero(RS), RSS)) → times_out_aag(one(R), S, RSS)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
ADDX_IN_AGA1(X, Y, Z) → ADDC_IN_AGA1(X, Y, Z)
ADDC_IN_AGA(X, Y, Z) → ADDC_IN_AGA1(X, Y, Z)
ADDC_IN_AGA1(one(X), one(Y), one(Z)) → ADDC_IN_AGA(X, Y, Z)
ADDC_IN_AGA1(zero(X), one(Y), zero(Z)) → ADDX_IN_AGA1(X, Y, Z)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
ADDC_IN_AGA(Y) → ADDC_IN_AGA1(Y)
ADDX_IN_AGA1(Y) → ADDC_IN_AGA1(Y)
ADDC_IN_AGA1(one(Y)) → ADDX_IN_AGA1(Y)
ADDC_IN_AGA1(one(Y)) → ADDC_IN_AGA(Y)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
ADDX_IN_AGA(X, Y, Z) → ADDZ_IN_AGA(X, Y, Z)
ADDZ_IN_AGA(zero(X), one(Y), one(Z)) → ADDX_IN_AGA(X, Y, Z)
times_in_aag(one(b), X, X) → times_out_aag(one(b), X, X)
times_in_aag(zero(R), S, zero(RS)) → U35_aag(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(b), X, X) → times_out_aaa(one(b), X, X)
times_in_aaa(zero(R), S, zero(RS)) → U35_aaa(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(R), S, RSS) → U36_aaa(R, S, RSS, times_in_aaa(R, S, RS))
U36_aaa(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aaa(R, S, RSS, add_in_aga(S, zero(RS), RSS))
add_in_aga(b, b, b) → add_out_aga(b, b, b)
add_in_aga(X, b, X) → U1_aga(X, binaryZ_in_a(X))
binaryZ_in_a(zero(X)) → U29_a(X, binaryZ_in_a(X))
binaryZ_in_a(one(X)) → U30_a(X, binary_in_a(X))
binary_in_a(b) → binary_out_a(b)
binary_in_a(zero(X)) → U27_a(X, binaryZ_in_a(X))
U27_a(X, binaryZ_out_a(X)) → binary_out_a(zero(X))
binary_in_a(one(X)) → U28_a(X, binary_in_a(X))
U28_a(X, binary_out_a(X)) → binary_out_a(one(X))
U30_a(X, binary_out_a(X)) → binaryZ_out_a(one(X))
U29_a(X, binaryZ_out_a(X)) → binaryZ_out_a(zero(X))
U1_aga(X, binaryZ_out_a(X)) → add_out_aga(X, b, X)
add_in_aga(b, Y, Y) → U2_aga(Y, binaryZ_in_g(Y))
binaryZ_in_g(zero(X)) → U29_g(X, binaryZ_in_a(X))
U29_g(X, binaryZ_out_a(X)) → binaryZ_out_g(zero(X))
binaryZ_in_g(one(X)) → U30_g(X, binary_in_g(X))
binary_in_g(b) → binary_out_g(b)
binary_in_g(zero(X)) → U27_g(X, binaryZ_in_a(X))
U27_g(X, binaryZ_out_a(X)) → binary_out_g(zero(X))
binary_in_g(one(X)) → U28_g(X, binary_in_g(X))
U28_g(X, binary_out_g(X)) → binary_out_g(one(X))
U30_g(X, binary_out_g(X)) → binaryZ_out_g(one(X))
U2_aga(Y, binaryZ_out_g(Y)) → add_out_aga(b, Y, Y)
add_in_aga(X, Y, Z) → U3_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(zero(X), zero(Y), zero(Z)) → U10_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), zero(Y), zero(Z)) → U10_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), one(Y), one(Z)) → U11_aaa(X, Y, Z, addx_in_aaa(X, Y, Z))
addx_in_aaa(one(X), b, one(X)) → U4_aaa(X, binary_in_a(X))
U4_aaa(X, binary_out_a(X)) → addx_out_aaa(one(X), b, one(X))
addx_in_aaa(zero(X), b, zero(X)) → U5_aaa(X, binaryZ_in_a(X))
U5_aaa(X, binaryZ_out_a(X)) → addx_out_aaa(zero(X), b, zero(X))
addx_in_aaa(X, Y, Z) → U6_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), zero(Y), one(Z)) → U12_aaa(X, Y, Z, addy_in_aaa(X, Y, Z))
addy_in_aaa(b, one(Y), one(Y)) → U7_aaa(Y, binary_in_a(Y))
U7_aaa(Y, binary_out_a(Y)) → addy_out_aaa(b, one(Y), one(Y))
addy_in_aaa(b, zero(Y), zero(Y)) → U8_aaa(Y, binaryZ_in_a(Y))
U8_aaa(Y, binaryZ_out_a(Y)) → addy_out_aaa(b, zero(Y), zero(Y))
addy_in_aaa(X, Y, Z) → U9_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), one(Y), zero(Z)) → U13_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
addc_in_aaa(b, b, one(b)) → addc_out_aaa(b, b, one(b))
addc_in_aaa(X, b, Z) → U14_aaa(X, Z, succZ_in_aa(X, Z))
succZ_in_aa(zero(X), one(X)) → U33_aa(X, binaryZ_in_a(X))
U33_aa(X, binaryZ_out_a(X)) → succZ_out_aa(zero(X), one(X))
succZ_in_aa(one(X), zero(Z)) → U34_aa(X, Z, succ_in_aa(X, Z))
succ_in_aa(b, one(b)) → succ_out_aa(b, one(b))
succ_in_aa(zero(X), one(X)) → U31_aa(X, binaryZ_in_a(X))
U31_aa(X, binaryZ_out_a(X)) → succ_out_aa(zero(X), one(X))
succ_in_aa(one(X), zero(Z)) → U32_aa(X, Z, succ_in_aa(X, Z))
U32_aa(X, Z, succ_out_aa(X, Z)) → succ_out_aa(one(X), zero(Z))
U34_aa(X, Z, succ_out_aa(X, Z)) → succZ_out_aa(one(X), zero(Z))
U14_aaa(X, Z, succZ_out_aa(X, Z)) → addc_out_aaa(X, b, Z)
addc_in_aaa(b, Y, Z) → U15_aaa(Y, Z, succZ_in_aa(Y, Z))
U15_aaa(Y, Z, succZ_out_aa(Y, Z)) → addc_out_aaa(b, Y, Z)
addc_in_aaa(X, Y, Z) → U16_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(zero(X), zero(Y), one(Z)) → U23_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), zero(Y), one(Z))
addC_in_aaa(zero(X), one(Y), zero(Z)) → U24_aaa(X, Y, Z, addX_in_aaa(X, Y, Z))
addX_in_aaa(zero(X), b, one(X)) → U17_aaa(X, binaryZ_in_a(X))
U17_aaa(X, binaryZ_out_a(X)) → addX_out_aaa(zero(X), b, one(X))
addX_in_aaa(one(X), b, zero(Z)) → U18_aaa(X, Z, succ_in_aa(X, Z))
U18_aaa(X, Z, succ_out_aa(X, Z)) → addX_out_aaa(one(X), b, zero(Z))
addX_in_aaa(X, Y, Z) → U19_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), zero(Y), zero(Z)) → U25_aaa(X, Y, Z, addY_in_aaa(X, Y, Z))
addY_in_aaa(b, zero(Y), one(Y)) → U20_aaa(Y, binaryZ_in_a(Y))
U20_aaa(Y, binaryZ_out_a(Y)) → addY_out_aaa(b, zero(Y), one(Y))
addY_in_aaa(b, one(Y), zero(Z)) → U21_aaa(Y, Z, succ_in_aa(Y, Z))
U21_aaa(Y, Z, succ_out_aa(Y, Z)) → addY_out_aaa(b, one(Y), zero(Z))
addY_in_aaa(X, Y, Z) → U22_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), one(Y), one(Z)) → U26_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
U26_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), one(Y), one(Z))
U22_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addY_out_aaa(X, Y, Z)
U25_aaa(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), zero(Y), zero(Z))
U19_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addX_out_aaa(X, Y, Z)
U24_aaa(X, Y, Z, addX_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), one(Y), zero(Z))
U16_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addc_out_aaa(X, Y, Z)
U13_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), one(Y), zero(Z))
U9_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addy_out_aaa(X, Y, Z)
U12_aaa(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), zero(Y), one(Z))
U6_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addx_out_aaa(X, Y, Z)
U11_aaa(X, Y, Z, addx_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), one(Y), one(Z))
U10_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), zero(Y), zero(Z))
U10_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aga(zero(X), zero(Y), zero(Z))
addz_in_aga(zero(X), one(Y), one(Z)) → U11_aga(X, Y, Z, addx_in_aga(X, Y, Z))
addx_in_aga(one(X), b, one(X)) → U4_aga(X, binary_in_a(X))
U4_aga(X, binary_out_a(X)) → addx_out_aga(one(X), b, one(X))
addx_in_aga(zero(X), b, zero(X)) → U5_aga(X, binaryZ_in_a(X))
U5_aga(X, binaryZ_out_a(X)) → addx_out_aga(zero(X), b, zero(X))
addx_in_aga(X, Y, Z) → U6_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(one(X), zero(Y), one(Z)) → U12_aga(X, Y, Z, addy_in_aaa(X, Y, Z))
U12_aga(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aga(one(X), zero(Y), one(Z))
addz_in_aga(one(X), one(Y), zero(Z)) → U13_aga(X, Y, Z, addc_in_aga(X, Y, Z))
addc_in_aga(b, b, one(b)) → addc_out_aga(b, b, one(b))
addc_in_aga(X, b, Z) → U14_aga(X, Z, succZ_in_aa(X, Z))
U14_aga(X, Z, succZ_out_aa(X, Z)) → addc_out_aga(X, b, Z)
addc_in_aga(b, Y, Z) → U15_aga(Y, Z, succZ_in_ga(Y, Z))
succZ_in_ga(zero(X), one(X)) → U33_ga(X, binaryZ_in_a(X))
U33_ga(X, binaryZ_out_a(X)) → succZ_out_ga(zero(X), one(X))
succZ_in_ga(one(X), zero(Z)) → U34_ga(X, Z, succ_in_ga(X, Z))
succ_in_ga(b, one(b)) → succ_out_ga(b, one(b))
succ_in_ga(zero(X), one(X)) → U31_ga(X, binaryZ_in_a(X))
U31_ga(X, binaryZ_out_a(X)) → succ_out_ga(zero(X), one(X))
succ_in_ga(one(X), zero(Z)) → U32_ga(X, Z, succ_in_ga(X, Z))
U32_ga(X, Z, succ_out_ga(X, Z)) → succ_out_ga(one(X), zero(Z))
U34_ga(X, Z, succ_out_ga(X, Z)) → succZ_out_ga(one(X), zero(Z))
U15_aga(Y, Z, succZ_out_ga(Y, Z)) → addc_out_aga(b, Y, Z)
addc_in_aga(X, Y, Z) → U16_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(zero(X), zero(Y), one(Z)) → U23_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aga(zero(X), zero(Y), one(Z))
addC_in_aga(zero(X), one(Y), zero(Z)) → U24_aga(X, Y, Z, addX_in_aga(X, Y, Z))
addX_in_aga(zero(X), b, one(X)) → U17_aga(X, binaryZ_in_a(X))
U17_aga(X, binaryZ_out_a(X)) → addX_out_aga(zero(X), b, one(X))
addX_in_aga(one(X), b, zero(Z)) → U18_aga(X, Z, succ_in_aa(X, Z))
U18_aga(X, Z, succ_out_aa(X, Z)) → addX_out_aga(one(X), b, zero(Z))
addX_in_aga(X, Y, Z) → U19_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(one(X), zero(Y), zero(Z)) → U25_aga(X, Y, Z, addY_in_aaa(X, Y, Z))
U25_aga(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aga(one(X), zero(Y), zero(Z))
addC_in_aga(one(X), one(Y), one(Z)) → U26_aga(X, Y, Z, addc_in_aga(X, Y, Z))
U26_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addC_out_aga(one(X), one(Y), one(Z))
U19_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addX_out_aga(X, Y, Z)
U24_aga(X, Y, Z, addX_out_aga(X, Y, Z)) → addC_out_aga(zero(X), one(Y), zero(Z))
U16_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addc_out_aga(X, Y, Z)
U13_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_aga(one(X), one(Y), zero(Z))
U6_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → addx_out_aga(X, Y, Z)
U11_aga(X, Y, Z, addx_out_aga(X, Y, Z)) → addz_out_aga(zero(X), one(Y), one(Z))
U3_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → add_out_aga(X, Y, Z)
U37_aaa(R, S, RSS, add_out_aga(S, zero(RS), RSS)) → times_out_aaa(one(R), S, RSS)
U35_aaa(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aaa(zero(R), S, zero(RS))
U35_aag(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aag(zero(R), S, zero(RS))
times_in_aag(one(R), S, RSS) → U36_aag(R, S, RSS, times_in_aaa(R, S, RS))
U36_aag(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aag(R, S, RSS, add_in_agg(S, zero(RS), RSS))
add_in_agg(b, b, b) → add_out_agg(b, b, b)
add_in_agg(X, b, X) → U1_agg(X, binaryZ_in_g(X))
U1_agg(X, binaryZ_out_g(X)) → add_out_agg(X, b, X)
add_in_agg(b, Y, Y) → U2_agg(Y, binaryZ_in_g(Y))
U2_agg(Y, binaryZ_out_g(Y)) → add_out_agg(b, Y, Y)
add_in_agg(X, Y, Z) → U3_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(zero(X), zero(Y), zero(Z)) → U10_agg(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_agg(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_agg(zero(X), zero(Y), zero(Z))
addz_in_agg(zero(X), one(Y), one(Z)) → U11_agg(X, Y, Z, addx_in_agg(X, Y, Z))
addx_in_agg(one(X), b, one(X)) → U4_agg(X, binary_in_g(X))
U4_agg(X, binary_out_g(X)) → addx_out_agg(one(X), b, one(X))
addx_in_agg(zero(X), b, zero(X)) → U5_agg(X, binaryZ_in_a(X))
U5_agg(X, binaryZ_out_a(X)) → addx_out_agg(zero(X), b, zero(X))
addx_in_agg(X, Y, Z) → U6_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(one(X), zero(Y), one(Z)) → U12_agg(X, Y, Z, addy_in_aag(X, Y, Z))
addy_in_aag(b, one(Y), one(Y)) → U7_aag(Y, binary_in_g(Y))
U7_aag(Y, binary_out_g(Y)) → addy_out_aag(b, one(Y), one(Y))
addy_in_aag(b, zero(Y), zero(Y)) → U8_aag(Y, binaryZ_in_a(Y))
U8_aag(Y, binaryZ_out_a(Y)) → addy_out_aag(b, zero(Y), zero(Y))
addy_in_aag(X, Y, Z) → U9_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(zero(X), zero(Y), zero(Z)) → U10_aag(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_aag(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aag(zero(X), zero(Y), zero(Z))
addz_in_aag(zero(X), one(Y), one(Z)) → U11_aag(X, Y, Z, addx_in_aag(X, Y, Z))
addx_in_aag(one(X), b, one(X)) → U4_aag(X, binary_in_g(X))
U4_aag(X, binary_out_g(X)) → addx_out_aag(one(X), b, one(X))
addx_in_aag(zero(X), b, zero(X)) → U5_aag(X, binaryZ_in_a(X))
U5_aag(X, binaryZ_out_a(X)) → addx_out_aag(zero(X), b, zero(X))
addx_in_aag(X, Y, Z) → U6_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(one(X), zero(Y), one(Z)) → U12_aag(X, Y, Z, addy_in_aag(X, Y, Z))
U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_aag(one(X), zero(Y), one(Z))
addz_in_aag(one(X), one(Y), zero(Z)) → U13_aag(X, Y, Z, addc_in_aaa(X, Y, Z))
U13_aag(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aag(one(X), one(Y), zero(Z))
U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addx_out_aag(X, Y, Z)
U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) → addz_out_aag(zero(X), one(Y), one(Z))
U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addy_out_aag(X, Y, Z)
U12_agg(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_agg(one(X), zero(Y), one(Z))
addz_in_agg(one(X), one(Y), zero(Z)) → U13_agg(X, Y, Z, addc_in_aga(X, Y, Z))
U13_agg(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_agg(one(X), one(Y), zero(Z))
U6_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → addx_out_agg(X, Y, Z)
U11_agg(X, Y, Z, addx_out_agg(X, Y, Z)) → addz_out_agg(zero(X), one(Y), one(Z))
U3_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → add_out_agg(X, Y, Z)
U37_aag(R, S, RSS, add_out_agg(S, zero(RS), RSS)) → times_out_aag(one(R), S, RSS)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
ADDX_IN_AGA(X, Y, Z) → ADDZ_IN_AGA(X, Y, Z)
ADDZ_IN_AGA(zero(X), one(Y), one(Z)) → ADDX_IN_AGA(X, Y, Z)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
ADDX_IN_AGA(Y) → ADDZ_IN_AGA(Y)
ADDZ_IN_AGA(one(Y)) → ADDX_IN_AGA(Y)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
BINARY_IN_G(one(X)) → BINARY_IN_G(X)
times_in_aag(one(b), X, X) → times_out_aag(one(b), X, X)
times_in_aag(zero(R), S, zero(RS)) → U35_aag(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(b), X, X) → times_out_aaa(one(b), X, X)
times_in_aaa(zero(R), S, zero(RS)) → U35_aaa(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(R), S, RSS) → U36_aaa(R, S, RSS, times_in_aaa(R, S, RS))
U36_aaa(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aaa(R, S, RSS, add_in_aga(S, zero(RS), RSS))
add_in_aga(b, b, b) → add_out_aga(b, b, b)
add_in_aga(X, b, X) → U1_aga(X, binaryZ_in_a(X))
binaryZ_in_a(zero(X)) → U29_a(X, binaryZ_in_a(X))
binaryZ_in_a(one(X)) → U30_a(X, binary_in_a(X))
binary_in_a(b) → binary_out_a(b)
binary_in_a(zero(X)) → U27_a(X, binaryZ_in_a(X))
U27_a(X, binaryZ_out_a(X)) → binary_out_a(zero(X))
binary_in_a(one(X)) → U28_a(X, binary_in_a(X))
U28_a(X, binary_out_a(X)) → binary_out_a(one(X))
U30_a(X, binary_out_a(X)) → binaryZ_out_a(one(X))
U29_a(X, binaryZ_out_a(X)) → binaryZ_out_a(zero(X))
U1_aga(X, binaryZ_out_a(X)) → add_out_aga(X, b, X)
add_in_aga(b, Y, Y) → U2_aga(Y, binaryZ_in_g(Y))
binaryZ_in_g(zero(X)) → U29_g(X, binaryZ_in_a(X))
U29_g(X, binaryZ_out_a(X)) → binaryZ_out_g(zero(X))
binaryZ_in_g(one(X)) → U30_g(X, binary_in_g(X))
binary_in_g(b) → binary_out_g(b)
binary_in_g(zero(X)) → U27_g(X, binaryZ_in_a(X))
U27_g(X, binaryZ_out_a(X)) → binary_out_g(zero(X))
binary_in_g(one(X)) → U28_g(X, binary_in_g(X))
U28_g(X, binary_out_g(X)) → binary_out_g(one(X))
U30_g(X, binary_out_g(X)) → binaryZ_out_g(one(X))
U2_aga(Y, binaryZ_out_g(Y)) → add_out_aga(b, Y, Y)
add_in_aga(X, Y, Z) → U3_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(zero(X), zero(Y), zero(Z)) → U10_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), zero(Y), zero(Z)) → U10_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), one(Y), one(Z)) → U11_aaa(X, Y, Z, addx_in_aaa(X, Y, Z))
addx_in_aaa(one(X), b, one(X)) → U4_aaa(X, binary_in_a(X))
U4_aaa(X, binary_out_a(X)) → addx_out_aaa(one(X), b, one(X))
addx_in_aaa(zero(X), b, zero(X)) → U5_aaa(X, binaryZ_in_a(X))
U5_aaa(X, binaryZ_out_a(X)) → addx_out_aaa(zero(X), b, zero(X))
addx_in_aaa(X, Y, Z) → U6_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), zero(Y), one(Z)) → U12_aaa(X, Y, Z, addy_in_aaa(X, Y, Z))
addy_in_aaa(b, one(Y), one(Y)) → U7_aaa(Y, binary_in_a(Y))
U7_aaa(Y, binary_out_a(Y)) → addy_out_aaa(b, one(Y), one(Y))
addy_in_aaa(b, zero(Y), zero(Y)) → U8_aaa(Y, binaryZ_in_a(Y))
U8_aaa(Y, binaryZ_out_a(Y)) → addy_out_aaa(b, zero(Y), zero(Y))
addy_in_aaa(X, Y, Z) → U9_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), one(Y), zero(Z)) → U13_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
addc_in_aaa(b, b, one(b)) → addc_out_aaa(b, b, one(b))
addc_in_aaa(X, b, Z) → U14_aaa(X, Z, succZ_in_aa(X, Z))
succZ_in_aa(zero(X), one(X)) → U33_aa(X, binaryZ_in_a(X))
U33_aa(X, binaryZ_out_a(X)) → succZ_out_aa(zero(X), one(X))
succZ_in_aa(one(X), zero(Z)) → U34_aa(X, Z, succ_in_aa(X, Z))
succ_in_aa(b, one(b)) → succ_out_aa(b, one(b))
succ_in_aa(zero(X), one(X)) → U31_aa(X, binaryZ_in_a(X))
U31_aa(X, binaryZ_out_a(X)) → succ_out_aa(zero(X), one(X))
succ_in_aa(one(X), zero(Z)) → U32_aa(X, Z, succ_in_aa(X, Z))
U32_aa(X, Z, succ_out_aa(X, Z)) → succ_out_aa(one(X), zero(Z))
U34_aa(X, Z, succ_out_aa(X, Z)) → succZ_out_aa(one(X), zero(Z))
U14_aaa(X, Z, succZ_out_aa(X, Z)) → addc_out_aaa(X, b, Z)
addc_in_aaa(b, Y, Z) → U15_aaa(Y, Z, succZ_in_aa(Y, Z))
U15_aaa(Y, Z, succZ_out_aa(Y, Z)) → addc_out_aaa(b, Y, Z)
addc_in_aaa(X, Y, Z) → U16_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(zero(X), zero(Y), one(Z)) → U23_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), zero(Y), one(Z))
addC_in_aaa(zero(X), one(Y), zero(Z)) → U24_aaa(X, Y, Z, addX_in_aaa(X, Y, Z))
addX_in_aaa(zero(X), b, one(X)) → U17_aaa(X, binaryZ_in_a(X))
U17_aaa(X, binaryZ_out_a(X)) → addX_out_aaa(zero(X), b, one(X))
addX_in_aaa(one(X), b, zero(Z)) → U18_aaa(X, Z, succ_in_aa(X, Z))
U18_aaa(X, Z, succ_out_aa(X, Z)) → addX_out_aaa(one(X), b, zero(Z))
addX_in_aaa(X, Y, Z) → U19_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), zero(Y), zero(Z)) → U25_aaa(X, Y, Z, addY_in_aaa(X, Y, Z))
addY_in_aaa(b, zero(Y), one(Y)) → U20_aaa(Y, binaryZ_in_a(Y))
U20_aaa(Y, binaryZ_out_a(Y)) → addY_out_aaa(b, zero(Y), one(Y))
addY_in_aaa(b, one(Y), zero(Z)) → U21_aaa(Y, Z, succ_in_aa(Y, Z))
U21_aaa(Y, Z, succ_out_aa(Y, Z)) → addY_out_aaa(b, one(Y), zero(Z))
addY_in_aaa(X, Y, Z) → U22_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), one(Y), one(Z)) → U26_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
U26_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), one(Y), one(Z))
U22_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addY_out_aaa(X, Y, Z)
U25_aaa(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), zero(Y), zero(Z))
U19_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addX_out_aaa(X, Y, Z)
U24_aaa(X, Y, Z, addX_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), one(Y), zero(Z))
U16_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addc_out_aaa(X, Y, Z)
U13_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), one(Y), zero(Z))
U9_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addy_out_aaa(X, Y, Z)
U12_aaa(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), zero(Y), one(Z))
U6_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addx_out_aaa(X, Y, Z)
U11_aaa(X, Y, Z, addx_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), one(Y), one(Z))
U10_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), zero(Y), zero(Z))
U10_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aga(zero(X), zero(Y), zero(Z))
addz_in_aga(zero(X), one(Y), one(Z)) → U11_aga(X, Y, Z, addx_in_aga(X, Y, Z))
addx_in_aga(one(X), b, one(X)) → U4_aga(X, binary_in_a(X))
U4_aga(X, binary_out_a(X)) → addx_out_aga(one(X), b, one(X))
addx_in_aga(zero(X), b, zero(X)) → U5_aga(X, binaryZ_in_a(X))
U5_aga(X, binaryZ_out_a(X)) → addx_out_aga(zero(X), b, zero(X))
addx_in_aga(X, Y, Z) → U6_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(one(X), zero(Y), one(Z)) → U12_aga(X, Y, Z, addy_in_aaa(X, Y, Z))
U12_aga(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aga(one(X), zero(Y), one(Z))
addz_in_aga(one(X), one(Y), zero(Z)) → U13_aga(X, Y, Z, addc_in_aga(X, Y, Z))
addc_in_aga(b, b, one(b)) → addc_out_aga(b, b, one(b))
addc_in_aga(X, b, Z) → U14_aga(X, Z, succZ_in_aa(X, Z))
U14_aga(X, Z, succZ_out_aa(X, Z)) → addc_out_aga(X, b, Z)
addc_in_aga(b, Y, Z) → U15_aga(Y, Z, succZ_in_ga(Y, Z))
succZ_in_ga(zero(X), one(X)) → U33_ga(X, binaryZ_in_a(X))
U33_ga(X, binaryZ_out_a(X)) → succZ_out_ga(zero(X), one(X))
succZ_in_ga(one(X), zero(Z)) → U34_ga(X, Z, succ_in_ga(X, Z))
succ_in_ga(b, one(b)) → succ_out_ga(b, one(b))
succ_in_ga(zero(X), one(X)) → U31_ga(X, binaryZ_in_a(X))
U31_ga(X, binaryZ_out_a(X)) → succ_out_ga(zero(X), one(X))
succ_in_ga(one(X), zero(Z)) → U32_ga(X, Z, succ_in_ga(X, Z))
U32_ga(X, Z, succ_out_ga(X, Z)) → succ_out_ga(one(X), zero(Z))
U34_ga(X, Z, succ_out_ga(X, Z)) → succZ_out_ga(one(X), zero(Z))
U15_aga(Y, Z, succZ_out_ga(Y, Z)) → addc_out_aga(b, Y, Z)
addc_in_aga(X, Y, Z) → U16_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(zero(X), zero(Y), one(Z)) → U23_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aga(zero(X), zero(Y), one(Z))
addC_in_aga(zero(X), one(Y), zero(Z)) → U24_aga(X, Y, Z, addX_in_aga(X, Y, Z))
addX_in_aga(zero(X), b, one(X)) → U17_aga(X, binaryZ_in_a(X))
U17_aga(X, binaryZ_out_a(X)) → addX_out_aga(zero(X), b, one(X))
addX_in_aga(one(X), b, zero(Z)) → U18_aga(X, Z, succ_in_aa(X, Z))
U18_aga(X, Z, succ_out_aa(X, Z)) → addX_out_aga(one(X), b, zero(Z))
addX_in_aga(X, Y, Z) → U19_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(one(X), zero(Y), zero(Z)) → U25_aga(X, Y, Z, addY_in_aaa(X, Y, Z))
U25_aga(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aga(one(X), zero(Y), zero(Z))
addC_in_aga(one(X), one(Y), one(Z)) → U26_aga(X, Y, Z, addc_in_aga(X, Y, Z))
U26_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addC_out_aga(one(X), one(Y), one(Z))
U19_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addX_out_aga(X, Y, Z)
U24_aga(X, Y, Z, addX_out_aga(X, Y, Z)) → addC_out_aga(zero(X), one(Y), zero(Z))
U16_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addc_out_aga(X, Y, Z)
U13_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_aga(one(X), one(Y), zero(Z))
U6_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → addx_out_aga(X, Y, Z)
U11_aga(X, Y, Z, addx_out_aga(X, Y, Z)) → addz_out_aga(zero(X), one(Y), one(Z))
U3_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → add_out_aga(X, Y, Z)
U37_aaa(R, S, RSS, add_out_aga(S, zero(RS), RSS)) → times_out_aaa(one(R), S, RSS)
U35_aaa(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aaa(zero(R), S, zero(RS))
U35_aag(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aag(zero(R), S, zero(RS))
times_in_aag(one(R), S, RSS) → U36_aag(R, S, RSS, times_in_aaa(R, S, RS))
U36_aag(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aag(R, S, RSS, add_in_agg(S, zero(RS), RSS))
add_in_agg(b, b, b) → add_out_agg(b, b, b)
add_in_agg(X, b, X) → U1_agg(X, binaryZ_in_g(X))
U1_agg(X, binaryZ_out_g(X)) → add_out_agg(X, b, X)
add_in_agg(b, Y, Y) → U2_agg(Y, binaryZ_in_g(Y))
U2_agg(Y, binaryZ_out_g(Y)) → add_out_agg(b, Y, Y)
add_in_agg(X, Y, Z) → U3_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(zero(X), zero(Y), zero(Z)) → U10_agg(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_agg(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_agg(zero(X), zero(Y), zero(Z))
addz_in_agg(zero(X), one(Y), one(Z)) → U11_agg(X, Y, Z, addx_in_agg(X, Y, Z))
addx_in_agg(one(X), b, one(X)) → U4_agg(X, binary_in_g(X))
U4_agg(X, binary_out_g(X)) → addx_out_agg(one(X), b, one(X))
addx_in_agg(zero(X), b, zero(X)) → U5_agg(X, binaryZ_in_a(X))
U5_agg(X, binaryZ_out_a(X)) → addx_out_agg(zero(X), b, zero(X))
addx_in_agg(X, Y, Z) → U6_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(one(X), zero(Y), one(Z)) → U12_agg(X, Y, Z, addy_in_aag(X, Y, Z))
addy_in_aag(b, one(Y), one(Y)) → U7_aag(Y, binary_in_g(Y))
U7_aag(Y, binary_out_g(Y)) → addy_out_aag(b, one(Y), one(Y))
addy_in_aag(b, zero(Y), zero(Y)) → U8_aag(Y, binaryZ_in_a(Y))
U8_aag(Y, binaryZ_out_a(Y)) → addy_out_aag(b, zero(Y), zero(Y))
addy_in_aag(X, Y, Z) → U9_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(zero(X), zero(Y), zero(Z)) → U10_aag(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_aag(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aag(zero(X), zero(Y), zero(Z))
addz_in_aag(zero(X), one(Y), one(Z)) → U11_aag(X, Y, Z, addx_in_aag(X, Y, Z))
addx_in_aag(one(X), b, one(X)) → U4_aag(X, binary_in_g(X))
U4_aag(X, binary_out_g(X)) → addx_out_aag(one(X), b, one(X))
addx_in_aag(zero(X), b, zero(X)) → U5_aag(X, binaryZ_in_a(X))
U5_aag(X, binaryZ_out_a(X)) → addx_out_aag(zero(X), b, zero(X))
addx_in_aag(X, Y, Z) → U6_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(one(X), zero(Y), one(Z)) → U12_aag(X, Y, Z, addy_in_aag(X, Y, Z))
U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_aag(one(X), zero(Y), one(Z))
addz_in_aag(one(X), one(Y), zero(Z)) → U13_aag(X, Y, Z, addc_in_aaa(X, Y, Z))
U13_aag(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aag(one(X), one(Y), zero(Z))
U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addx_out_aag(X, Y, Z)
U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) → addz_out_aag(zero(X), one(Y), one(Z))
U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addy_out_aag(X, Y, Z)
U12_agg(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_agg(one(X), zero(Y), one(Z))
addz_in_agg(one(X), one(Y), zero(Z)) → U13_agg(X, Y, Z, addc_in_aga(X, Y, Z))
U13_agg(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_agg(one(X), one(Y), zero(Z))
U6_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → addx_out_agg(X, Y, Z)
U11_agg(X, Y, Z, addx_out_agg(X, Y, Z)) → addz_out_agg(zero(X), one(Y), one(Z))
U3_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → add_out_agg(X, Y, Z)
U37_aag(R, S, RSS, add_out_agg(S, zero(RS), RSS)) → times_out_aag(one(R), S, RSS)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
BINARY_IN_G(one(X)) → BINARY_IN_G(X)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
BINARY_IN_G(one(X)) → BINARY_IN_G(X)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
ADDZ_IN_AAG(zero(X), one(Y), one(Z)) → ADDX_IN_AAG(X, Y, Z)
ADDZ_IN_AAG(one(X), zero(Y), one(Z)) → ADDY_IN_AAG(X, Y, Z)
ADDX_IN_AAG(X, Y, Z) → ADDZ_IN_AAG(X, Y, Z)
ADDY_IN_AAG(X, Y, Z) → ADDZ_IN_AAG(X, Y, Z)
times_in_aag(one(b), X, X) → times_out_aag(one(b), X, X)
times_in_aag(zero(R), S, zero(RS)) → U35_aag(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(b), X, X) → times_out_aaa(one(b), X, X)
times_in_aaa(zero(R), S, zero(RS)) → U35_aaa(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(R), S, RSS) → U36_aaa(R, S, RSS, times_in_aaa(R, S, RS))
U36_aaa(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aaa(R, S, RSS, add_in_aga(S, zero(RS), RSS))
add_in_aga(b, b, b) → add_out_aga(b, b, b)
add_in_aga(X, b, X) → U1_aga(X, binaryZ_in_a(X))
binaryZ_in_a(zero(X)) → U29_a(X, binaryZ_in_a(X))
binaryZ_in_a(one(X)) → U30_a(X, binary_in_a(X))
binary_in_a(b) → binary_out_a(b)
binary_in_a(zero(X)) → U27_a(X, binaryZ_in_a(X))
U27_a(X, binaryZ_out_a(X)) → binary_out_a(zero(X))
binary_in_a(one(X)) → U28_a(X, binary_in_a(X))
U28_a(X, binary_out_a(X)) → binary_out_a(one(X))
U30_a(X, binary_out_a(X)) → binaryZ_out_a(one(X))
U29_a(X, binaryZ_out_a(X)) → binaryZ_out_a(zero(X))
U1_aga(X, binaryZ_out_a(X)) → add_out_aga(X, b, X)
add_in_aga(b, Y, Y) → U2_aga(Y, binaryZ_in_g(Y))
binaryZ_in_g(zero(X)) → U29_g(X, binaryZ_in_a(X))
U29_g(X, binaryZ_out_a(X)) → binaryZ_out_g(zero(X))
binaryZ_in_g(one(X)) → U30_g(X, binary_in_g(X))
binary_in_g(b) → binary_out_g(b)
binary_in_g(zero(X)) → U27_g(X, binaryZ_in_a(X))
U27_g(X, binaryZ_out_a(X)) → binary_out_g(zero(X))
binary_in_g(one(X)) → U28_g(X, binary_in_g(X))
U28_g(X, binary_out_g(X)) → binary_out_g(one(X))
U30_g(X, binary_out_g(X)) → binaryZ_out_g(one(X))
U2_aga(Y, binaryZ_out_g(Y)) → add_out_aga(b, Y, Y)
add_in_aga(X, Y, Z) → U3_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(zero(X), zero(Y), zero(Z)) → U10_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), zero(Y), zero(Z)) → U10_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), one(Y), one(Z)) → U11_aaa(X, Y, Z, addx_in_aaa(X, Y, Z))
addx_in_aaa(one(X), b, one(X)) → U4_aaa(X, binary_in_a(X))
U4_aaa(X, binary_out_a(X)) → addx_out_aaa(one(X), b, one(X))
addx_in_aaa(zero(X), b, zero(X)) → U5_aaa(X, binaryZ_in_a(X))
U5_aaa(X, binaryZ_out_a(X)) → addx_out_aaa(zero(X), b, zero(X))
addx_in_aaa(X, Y, Z) → U6_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), zero(Y), one(Z)) → U12_aaa(X, Y, Z, addy_in_aaa(X, Y, Z))
addy_in_aaa(b, one(Y), one(Y)) → U7_aaa(Y, binary_in_a(Y))
U7_aaa(Y, binary_out_a(Y)) → addy_out_aaa(b, one(Y), one(Y))
addy_in_aaa(b, zero(Y), zero(Y)) → U8_aaa(Y, binaryZ_in_a(Y))
U8_aaa(Y, binaryZ_out_a(Y)) → addy_out_aaa(b, zero(Y), zero(Y))
addy_in_aaa(X, Y, Z) → U9_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), one(Y), zero(Z)) → U13_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
addc_in_aaa(b, b, one(b)) → addc_out_aaa(b, b, one(b))
addc_in_aaa(X, b, Z) → U14_aaa(X, Z, succZ_in_aa(X, Z))
succZ_in_aa(zero(X), one(X)) → U33_aa(X, binaryZ_in_a(X))
U33_aa(X, binaryZ_out_a(X)) → succZ_out_aa(zero(X), one(X))
succZ_in_aa(one(X), zero(Z)) → U34_aa(X, Z, succ_in_aa(X, Z))
succ_in_aa(b, one(b)) → succ_out_aa(b, one(b))
succ_in_aa(zero(X), one(X)) → U31_aa(X, binaryZ_in_a(X))
U31_aa(X, binaryZ_out_a(X)) → succ_out_aa(zero(X), one(X))
succ_in_aa(one(X), zero(Z)) → U32_aa(X, Z, succ_in_aa(X, Z))
U32_aa(X, Z, succ_out_aa(X, Z)) → succ_out_aa(one(X), zero(Z))
U34_aa(X, Z, succ_out_aa(X, Z)) → succZ_out_aa(one(X), zero(Z))
U14_aaa(X, Z, succZ_out_aa(X, Z)) → addc_out_aaa(X, b, Z)
addc_in_aaa(b, Y, Z) → U15_aaa(Y, Z, succZ_in_aa(Y, Z))
U15_aaa(Y, Z, succZ_out_aa(Y, Z)) → addc_out_aaa(b, Y, Z)
addc_in_aaa(X, Y, Z) → U16_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(zero(X), zero(Y), one(Z)) → U23_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), zero(Y), one(Z))
addC_in_aaa(zero(X), one(Y), zero(Z)) → U24_aaa(X, Y, Z, addX_in_aaa(X, Y, Z))
addX_in_aaa(zero(X), b, one(X)) → U17_aaa(X, binaryZ_in_a(X))
U17_aaa(X, binaryZ_out_a(X)) → addX_out_aaa(zero(X), b, one(X))
addX_in_aaa(one(X), b, zero(Z)) → U18_aaa(X, Z, succ_in_aa(X, Z))
U18_aaa(X, Z, succ_out_aa(X, Z)) → addX_out_aaa(one(X), b, zero(Z))
addX_in_aaa(X, Y, Z) → U19_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), zero(Y), zero(Z)) → U25_aaa(X, Y, Z, addY_in_aaa(X, Y, Z))
addY_in_aaa(b, zero(Y), one(Y)) → U20_aaa(Y, binaryZ_in_a(Y))
U20_aaa(Y, binaryZ_out_a(Y)) → addY_out_aaa(b, zero(Y), one(Y))
addY_in_aaa(b, one(Y), zero(Z)) → U21_aaa(Y, Z, succ_in_aa(Y, Z))
U21_aaa(Y, Z, succ_out_aa(Y, Z)) → addY_out_aaa(b, one(Y), zero(Z))
addY_in_aaa(X, Y, Z) → U22_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), one(Y), one(Z)) → U26_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
U26_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), one(Y), one(Z))
U22_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addY_out_aaa(X, Y, Z)
U25_aaa(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), zero(Y), zero(Z))
U19_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addX_out_aaa(X, Y, Z)
U24_aaa(X, Y, Z, addX_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), one(Y), zero(Z))
U16_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addc_out_aaa(X, Y, Z)
U13_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), one(Y), zero(Z))
U9_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addy_out_aaa(X, Y, Z)
U12_aaa(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), zero(Y), one(Z))
U6_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addx_out_aaa(X, Y, Z)
U11_aaa(X, Y, Z, addx_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), one(Y), one(Z))
U10_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), zero(Y), zero(Z))
U10_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aga(zero(X), zero(Y), zero(Z))
addz_in_aga(zero(X), one(Y), one(Z)) → U11_aga(X, Y, Z, addx_in_aga(X, Y, Z))
addx_in_aga(one(X), b, one(X)) → U4_aga(X, binary_in_a(X))
U4_aga(X, binary_out_a(X)) → addx_out_aga(one(X), b, one(X))
addx_in_aga(zero(X), b, zero(X)) → U5_aga(X, binaryZ_in_a(X))
U5_aga(X, binaryZ_out_a(X)) → addx_out_aga(zero(X), b, zero(X))
addx_in_aga(X, Y, Z) → U6_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(one(X), zero(Y), one(Z)) → U12_aga(X, Y, Z, addy_in_aaa(X, Y, Z))
U12_aga(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aga(one(X), zero(Y), one(Z))
addz_in_aga(one(X), one(Y), zero(Z)) → U13_aga(X, Y, Z, addc_in_aga(X, Y, Z))
addc_in_aga(b, b, one(b)) → addc_out_aga(b, b, one(b))
addc_in_aga(X, b, Z) → U14_aga(X, Z, succZ_in_aa(X, Z))
U14_aga(X, Z, succZ_out_aa(X, Z)) → addc_out_aga(X, b, Z)
addc_in_aga(b, Y, Z) → U15_aga(Y, Z, succZ_in_ga(Y, Z))
succZ_in_ga(zero(X), one(X)) → U33_ga(X, binaryZ_in_a(X))
U33_ga(X, binaryZ_out_a(X)) → succZ_out_ga(zero(X), one(X))
succZ_in_ga(one(X), zero(Z)) → U34_ga(X, Z, succ_in_ga(X, Z))
succ_in_ga(b, one(b)) → succ_out_ga(b, one(b))
succ_in_ga(zero(X), one(X)) → U31_ga(X, binaryZ_in_a(X))
U31_ga(X, binaryZ_out_a(X)) → succ_out_ga(zero(X), one(X))
succ_in_ga(one(X), zero(Z)) → U32_ga(X, Z, succ_in_ga(X, Z))
U32_ga(X, Z, succ_out_ga(X, Z)) → succ_out_ga(one(X), zero(Z))
U34_ga(X, Z, succ_out_ga(X, Z)) → succZ_out_ga(one(X), zero(Z))
U15_aga(Y, Z, succZ_out_ga(Y, Z)) → addc_out_aga(b, Y, Z)
addc_in_aga(X, Y, Z) → U16_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(zero(X), zero(Y), one(Z)) → U23_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aga(zero(X), zero(Y), one(Z))
addC_in_aga(zero(X), one(Y), zero(Z)) → U24_aga(X, Y, Z, addX_in_aga(X, Y, Z))
addX_in_aga(zero(X), b, one(X)) → U17_aga(X, binaryZ_in_a(X))
U17_aga(X, binaryZ_out_a(X)) → addX_out_aga(zero(X), b, one(X))
addX_in_aga(one(X), b, zero(Z)) → U18_aga(X, Z, succ_in_aa(X, Z))
U18_aga(X, Z, succ_out_aa(X, Z)) → addX_out_aga(one(X), b, zero(Z))
addX_in_aga(X, Y, Z) → U19_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(one(X), zero(Y), zero(Z)) → U25_aga(X, Y, Z, addY_in_aaa(X, Y, Z))
U25_aga(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aga(one(X), zero(Y), zero(Z))
addC_in_aga(one(X), one(Y), one(Z)) → U26_aga(X, Y, Z, addc_in_aga(X, Y, Z))
U26_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addC_out_aga(one(X), one(Y), one(Z))
U19_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addX_out_aga(X, Y, Z)
U24_aga(X, Y, Z, addX_out_aga(X, Y, Z)) → addC_out_aga(zero(X), one(Y), zero(Z))
U16_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addc_out_aga(X, Y, Z)
U13_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_aga(one(X), one(Y), zero(Z))
U6_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → addx_out_aga(X, Y, Z)
U11_aga(X, Y, Z, addx_out_aga(X, Y, Z)) → addz_out_aga(zero(X), one(Y), one(Z))
U3_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → add_out_aga(X, Y, Z)
U37_aaa(R, S, RSS, add_out_aga(S, zero(RS), RSS)) → times_out_aaa(one(R), S, RSS)
U35_aaa(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aaa(zero(R), S, zero(RS))
U35_aag(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aag(zero(R), S, zero(RS))
times_in_aag(one(R), S, RSS) → U36_aag(R, S, RSS, times_in_aaa(R, S, RS))
U36_aag(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aag(R, S, RSS, add_in_agg(S, zero(RS), RSS))
add_in_agg(b, b, b) → add_out_agg(b, b, b)
add_in_agg(X, b, X) → U1_agg(X, binaryZ_in_g(X))
U1_agg(X, binaryZ_out_g(X)) → add_out_agg(X, b, X)
add_in_agg(b, Y, Y) → U2_agg(Y, binaryZ_in_g(Y))
U2_agg(Y, binaryZ_out_g(Y)) → add_out_agg(b, Y, Y)
add_in_agg(X, Y, Z) → U3_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(zero(X), zero(Y), zero(Z)) → U10_agg(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_agg(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_agg(zero(X), zero(Y), zero(Z))
addz_in_agg(zero(X), one(Y), one(Z)) → U11_agg(X, Y, Z, addx_in_agg(X, Y, Z))
addx_in_agg(one(X), b, one(X)) → U4_agg(X, binary_in_g(X))
U4_agg(X, binary_out_g(X)) → addx_out_agg(one(X), b, one(X))
addx_in_agg(zero(X), b, zero(X)) → U5_agg(X, binaryZ_in_a(X))
U5_agg(X, binaryZ_out_a(X)) → addx_out_agg(zero(X), b, zero(X))
addx_in_agg(X, Y, Z) → U6_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(one(X), zero(Y), one(Z)) → U12_agg(X, Y, Z, addy_in_aag(X, Y, Z))
addy_in_aag(b, one(Y), one(Y)) → U7_aag(Y, binary_in_g(Y))
U7_aag(Y, binary_out_g(Y)) → addy_out_aag(b, one(Y), one(Y))
addy_in_aag(b, zero(Y), zero(Y)) → U8_aag(Y, binaryZ_in_a(Y))
U8_aag(Y, binaryZ_out_a(Y)) → addy_out_aag(b, zero(Y), zero(Y))
addy_in_aag(X, Y, Z) → U9_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(zero(X), zero(Y), zero(Z)) → U10_aag(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_aag(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aag(zero(X), zero(Y), zero(Z))
addz_in_aag(zero(X), one(Y), one(Z)) → U11_aag(X, Y, Z, addx_in_aag(X, Y, Z))
addx_in_aag(one(X), b, one(X)) → U4_aag(X, binary_in_g(X))
U4_aag(X, binary_out_g(X)) → addx_out_aag(one(X), b, one(X))
addx_in_aag(zero(X), b, zero(X)) → U5_aag(X, binaryZ_in_a(X))
U5_aag(X, binaryZ_out_a(X)) → addx_out_aag(zero(X), b, zero(X))
addx_in_aag(X, Y, Z) → U6_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(one(X), zero(Y), one(Z)) → U12_aag(X, Y, Z, addy_in_aag(X, Y, Z))
U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_aag(one(X), zero(Y), one(Z))
addz_in_aag(one(X), one(Y), zero(Z)) → U13_aag(X, Y, Z, addc_in_aaa(X, Y, Z))
U13_aag(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aag(one(X), one(Y), zero(Z))
U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addx_out_aag(X, Y, Z)
U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) → addz_out_aag(zero(X), one(Y), one(Z))
U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addy_out_aag(X, Y, Z)
U12_agg(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_agg(one(X), zero(Y), one(Z))
addz_in_agg(one(X), one(Y), zero(Z)) → U13_agg(X, Y, Z, addc_in_aga(X, Y, Z))
U13_agg(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_agg(one(X), one(Y), zero(Z))
U6_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → addx_out_agg(X, Y, Z)
U11_agg(X, Y, Z, addx_out_agg(X, Y, Z)) → addz_out_agg(zero(X), one(Y), one(Z))
U3_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → add_out_agg(X, Y, Z)
U37_aag(R, S, RSS, add_out_agg(S, zero(RS), RSS)) → times_out_aag(one(R), S, RSS)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
ADDZ_IN_AAG(zero(X), one(Y), one(Z)) → ADDX_IN_AAG(X, Y, Z)
ADDZ_IN_AAG(one(X), zero(Y), one(Z)) → ADDY_IN_AAG(X, Y, Z)
ADDX_IN_AAG(X, Y, Z) → ADDZ_IN_AAG(X, Y, Z)
ADDY_IN_AAG(X, Y, Z) → ADDZ_IN_AAG(X, Y, Z)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
ADDY_IN_AAG(Z) → ADDZ_IN_AAG(Z)
ADDZ_IN_AAG(one(Z)) → ADDX_IN_AAG(Z)
ADDX_IN_AAG(Z) → ADDZ_IN_AAG(Z)
ADDZ_IN_AAG(one(Z)) → ADDY_IN_AAG(Z)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PrologToPiTRSProof
ADDX_IN_AGG(X, Y, Z) → ADDZ_IN_AGG(X, Y, Z)
ADDZ_IN_AGG(zero(X), one(Y), one(Z)) → ADDX_IN_AGG(X, Y, Z)
times_in_aag(one(b), X, X) → times_out_aag(one(b), X, X)
times_in_aag(zero(R), S, zero(RS)) → U35_aag(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(b), X, X) → times_out_aaa(one(b), X, X)
times_in_aaa(zero(R), S, zero(RS)) → U35_aaa(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(R), S, RSS) → U36_aaa(R, S, RSS, times_in_aaa(R, S, RS))
U36_aaa(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aaa(R, S, RSS, add_in_aga(S, zero(RS), RSS))
add_in_aga(b, b, b) → add_out_aga(b, b, b)
add_in_aga(X, b, X) → U1_aga(X, binaryZ_in_a(X))
binaryZ_in_a(zero(X)) → U29_a(X, binaryZ_in_a(X))
binaryZ_in_a(one(X)) → U30_a(X, binary_in_a(X))
binary_in_a(b) → binary_out_a(b)
binary_in_a(zero(X)) → U27_a(X, binaryZ_in_a(X))
U27_a(X, binaryZ_out_a(X)) → binary_out_a(zero(X))
binary_in_a(one(X)) → U28_a(X, binary_in_a(X))
U28_a(X, binary_out_a(X)) → binary_out_a(one(X))
U30_a(X, binary_out_a(X)) → binaryZ_out_a(one(X))
U29_a(X, binaryZ_out_a(X)) → binaryZ_out_a(zero(X))
U1_aga(X, binaryZ_out_a(X)) → add_out_aga(X, b, X)
add_in_aga(b, Y, Y) → U2_aga(Y, binaryZ_in_g(Y))
binaryZ_in_g(zero(X)) → U29_g(X, binaryZ_in_a(X))
U29_g(X, binaryZ_out_a(X)) → binaryZ_out_g(zero(X))
binaryZ_in_g(one(X)) → U30_g(X, binary_in_g(X))
binary_in_g(b) → binary_out_g(b)
binary_in_g(zero(X)) → U27_g(X, binaryZ_in_a(X))
U27_g(X, binaryZ_out_a(X)) → binary_out_g(zero(X))
binary_in_g(one(X)) → U28_g(X, binary_in_g(X))
U28_g(X, binary_out_g(X)) → binary_out_g(one(X))
U30_g(X, binary_out_g(X)) → binaryZ_out_g(one(X))
U2_aga(Y, binaryZ_out_g(Y)) → add_out_aga(b, Y, Y)
add_in_aga(X, Y, Z) → U3_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(zero(X), zero(Y), zero(Z)) → U10_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), zero(Y), zero(Z)) → U10_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), one(Y), one(Z)) → U11_aaa(X, Y, Z, addx_in_aaa(X, Y, Z))
addx_in_aaa(one(X), b, one(X)) → U4_aaa(X, binary_in_a(X))
U4_aaa(X, binary_out_a(X)) → addx_out_aaa(one(X), b, one(X))
addx_in_aaa(zero(X), b, zero(X)) → U5_aaa(X, binaryZ_in_a(X))
U5_aaa(X, binaryZ_out_a(X)) → addx_out_aaa(zero(X), b, zero(X))
addx_in_aaa(X, Y, Z) → U6_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), zero(Y), one(Z)) → U12_aaa(X, Y, Z, addy_in_aaa(X, Y, Z))
addy_in_aaa(b, one(Y), one(Y)) → U7_aaa(Y, binary_in_a(Y))
U7_aaa(Y, binary_out_a(Y)) → addy_out_aaa(b, one(Y), one(Y))
addy_in_aaa(b, zero(Y), zero(Y)) → U8_aaa(Y, binaryZ_in_a(Y))
U8_aaa(Y, binaryZ_out_a(Y)) → addy_out_aaa(b, zero(Y), zero(Y))
addy_in_aaa(X, Y, Z) → U9_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), one(Y), zero(Z)) → U13_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
addc_in_aaa(b, b, one(b)) → addc_out_aaa(b, b, one(b))
addc_in_aaa(X, b, Z) → U14_aaa(X, Z, succZ_in_aa(X, Z))
succZ_in_aa(zero(X), one(X)) → U33_aa(X, binaryZ_in_a(X))
U33_aa(X, binaryZ_out_a(X)) → succZ_out_aa(zero(X), one(X))
succZ_in_aa(one(X), zero(Z)) → U34_aa(X, Z, succ_in_aa(X, Z))
succ_in_aa(b, one(b)) → succ_out_aa(b, one(b))
succ_in_aa(zero(X), one(X)) → U31_aa(X, binaryZ_in_a(X))
U31_aa(X, binaryZ_out_a(X)) → succ_out_aa(zero(X), one(X))
succ_in_aa(one(X), zero(Z)) → U32_aa(X, Z, succ_in_aa(X, Z))
U32_aa(X, Z, succ_out_aa(X, Z)) → succ_out_aa(one(X), zero(Z))
U34_aa(X, Z, succ_out_aa(X, Z)) → succZ_out_aa(one(X), zero(Z))
U14_aaa(X, Z, succZ_out_aa(X, Z)) → addc_out_aaa(X, b, Z)
addc_in_aaa(b, Y, Z) → U15_aaa(Y, Z, succZ_in_aa(Y, Z))
U15_aaa(Y, Z, succZ_out_aa(Y, Z)) → addc_out_aaa(b, Y, Z)
addc_in_aaa(X, Y, Z) → U16_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(zero(X), zero(Y), one(Z)) → U23_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), zero(Y), one(Z))
addC_in_aaa(zero(X), one(Y), zero(Z)) → U24_aaa(X, Y, Z, addX_in_aaa(X, Y, Z))
addX_in_aaa(zero(X), b, one(X)) → U17_aaa(X, binaryZ_in_a(X))
U17_aaa(X, binaryZ_out_a(X)) → addX_out_aaa(zero(X), b, one(X))
addX_in_aaa(one(X), b, zero(Z)) → U18_aaa(X, Z, succ_in_aa(X, Z))
U18_aaa(X, Z, succ_out_aa(X, Z)) → addX_out_aaa(one(X), b, zero(Z))
addX_in_aaa(X, Y, Z) → U19_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), zero(Y), zero(Z)) → U25_aaa(X, Y, Z, addY_in_aaa(X, Y, Z))
addY_in_aaa(b, zero(Y), one(Y)) → U20_aaa(Y, binaryZ_in_a(Y))
U20_aaa(Y, binaryZ_out_a(Y)) → addY_out_aaa(b, zero(Y), one(Y))
addY_in_aaa(b, one(Y), zero(Z)) → U21_aaa(Y, Z, succ_in_aa(Y, Z))
U21_aaa(Y, Z, succ_out_aa(Y, Z)) → addY_out_aaa(b, one(Y), zero(Z))
addY_in_aaa(X, Y, Z) → U22_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), one(Y), one(Z)) → U26_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
U26_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), one(Y), one(Z))
U22_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addY_out_aaa(X, Y, Z)
U25_aaa(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), zero(Y), zero(Z))
U19_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addX_out_aaa(X, Y, Z)
U24_aaa(X, Y, Z, addX_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), one(Y), zero(Z))
U16_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addc_out_aaa(X, Y, Z)
U13_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), one(Y), zero(Z))
U9_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addy_out_aaa(X, Y, Z)
U12_aaa(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), zero(Y), one(Z))
U6_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addx_out_aaa(X, Y, Z)
U11_aaa(X, Y, Z, addx_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), one(Y), one(Z))
U10_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), zero(Y), zero(Z))
U10_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aga(zero(X), zero(Y), zero(Z))
addz_in_aga(zero(X), one(Y), one(Z)) → U11_aga(X, Y, Z, addx_in_aga(X, Y, Z))
addx_in_aga(one(X), b, one(X)) → U4_aga(X, binary_in_a(X))
U4_aga(X, binary_out_a(X)) → addx_out_aga(one(X), b, one(X))
addx_in_aga(zero(X), b, zero(X)) → U5_aga(X, binaryZ_in_a(X))
U5_aga(X, binaryZ_out_a(X)) → addx_out_aga(zero(X), b, zero(X))
addx_in_aga(X, Y, Z) → U6_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(one(X), zero(Y), one(Z)) → U12_aga(X, Y, Z, addy_in_aaa(X, Y, Z))
U12_aga(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aga(one(X), zero(Y), one(Z))
addz_in_aga(one(X), one(Y), zero(Z)) → U13_aga(X, Y, Z, addc_in_aga(X, Y, Z))
addc_in_aga(b, b, one(b)) → addc_out_aga(b, b, one(b))
addc_in_aga(X, b, Z) → U14_aga(X, Z, succZ_in_aa(X, Z))
U14_aga(X, Z, succZ_out_aa(X, Z)) → addc_out_aga(X, b, Z)
addc_in_aga(b, Y, Z) → U15_aga(Y, Z, succZ_in_ga(Y, Z))
succZ_in_ga(zero(X), one(X)) → U33_ga(X, binaryZ_in_a(X))
U33_ga(X, binaryZ_out_a(X)) → succZ_out_ga(zero(X), one(X))
succZ_in_ga(one(X), zero(Z)) → U34_ga(X, Z, succ_in_ga(X, Z))
succ_in_ga(b, one(b)) → succ_out_ga(b, one(b))
succ_in_ga(zero(X), one(X)) → U31_ga(X, binaryZ_in_a(X))
U31_ga(X, binaryZ_out_a(X)) → succ_out_ga(zero(X), one(X))
succ_in_ga(one(X), zero(Z)) → U32_ga(X, Z, succ_in_ga(X, Z))
U32_ga(X, Z, succ_out_ga(X, Z)) → succ_out_ga(one(X), zero(Z))
U34_ga(X, Z, succ_out_ga(X, Z)) → succZ_out_ga(one(X), zero(Z))
U15_aga(Y, Z, succZ_out_ga(Y, Z)) → addc_out_aga(b, Y, Z)
addc_in_aga(X, Y, Z) → U16_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(zero(X), zero(Y), one(Z)) → U23_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aga(zero(X), zero(Y), one(Z))
addC_in_aga(zero(X), one(Y), zero(Z)) → U24_aga(X, Y, Z, addX_in_aga(X, Y, Z))
addX_in_aga(zero(X), b, one(X)) → U17_aga(X, binaryZ_in_a(X))
U17_aga(X, binaryZ_out_a(X)) → addX_out_aga(zero(X), b, one(X))
addX_in_aga(one(X), b, zero(Z)) → U18_aga(X, Z, succ_in_aa(X, Z))
U18_aga(X, Z, succ_out_aa(X, Z)) → addX_out_aga(one(X), b, zero(Z))
addX_in_aga(X, Y, Z) → U19_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(one(X), zero(Y), zero(Z)) → U25_aga(X, Y, Z, addY_in_aaa(X, Y, Z))
U25_aga(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aga(one(X), zero(Y), zero(Z))
addC_in_aga(one(X), one(Y), one(Z)) → U26_aga(X, Y, Z, addc_in_aga(X, Y, Z))
U26_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addC_out_aga(one(X), one(Y), one(Z))
U19_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addX_out_aga(X, Y, Z)
U24_aga(X, Y, Z, addX_out_aga(X, Y, Z)) → addC_out_aga(zero(X), one(Y), zero(Z))
U16_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addc_out_aga(X, Y, Z)
U13_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_aga(one(X), one(Y), zero(Z))
U6_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → addx_out_aga(X, Y, Z)
U11_aga(X, Y, Z, addx_out_aga(X, Y, Z)) → addz_out_aga(zero(X), one(Y), one(Z))
U3_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → add_out_aga(X, Y, Z)
U37_aaa(R, S, RSS, add_out_aga(S, zero(RS), RSS)) → times_out_aaa(one(R), S, RSS)
U35_aaa(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aaa(zero(R), S, zero(RS))
U35_aag(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aag(zero(R), S, zero(RS))
times_in_aag(one(R), S, RSS) → U36_aag(R, S, RSS, times_in_aaa(R, S, RS))
U36_aag(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aag(R, S, RSS, add_in_agg(S, zero(RS), RSS))
add_in_agg(b, b, b) → add_out_agg(b, b, b)
add_in_agg(X, b, X) → U1_agg(X, binaryZ_in_g(X))
U1_agg(X, binaryZ_out_g(X)) → add_out_agg(X, b, X)
add_in_agg(b, Y, Y) → U2_agg(Y, binaryZ_in_g(Y))
U2_agg(Y, binaryZ_out_g(Y)) → add_out_agg(b, Y, Y)
add_in_agg(X, Y, Z) → U3_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(zero(X), zero(Y), zero(Z)) → U10_agg(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_agg(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_agg(zero(X), zero(Y), zero(Z))
addz_in_agg(zero(X), one(Y), one(Z)) → U11_agg(X, Y, Z, addx_in_agg(X, Y, Z))
addx_in_agg(one(X), b, one(X)) → U4_agg(X, binary_in_g(X))
U4_agg(X, binary_out_g(X)) → addx_out_agg(one(X), b, one(X))
addx_in_agg(zero(X), b, zero(X)) → U5_agg(X, binaryZ_in_a(X))
U5_agg(X, binaryZ_out_a(X)) → addx_out_agg(zero(X), b, zero(X))
addx_in_agg(X, Y, Z) → U6_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(one(X), zero(Y), one(Z)) → U12_agg(X, Y, Z, addy_in_aag(X, Y, Z))
addy_in_aag(b, one(Y), one(Y)) → U7_aag(Y, binary_in_g(Y))
U7_aag(Y, binary_out_g(Y)) → addy_out_aag(b, one(Y), one(Y))
addy_in_aag(b, zero(Y), zero(Y)) → U8_aag(Y, binaryZ_in_a(Y))
U8_aag(Y, binaryZ_out_a(Y)) → addy_out_aag(b, zero(Y), zero(Y))
addy_in_aag(X, Y, Z) → U9_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(zero(X), zero(Y), zero(Z)) → U10_aag(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_aag(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aag(zero(X), zero(Y), zero(Z))
addz_in_aag(zero(X), one(Y), one(Z)) → U11_aag(X, Y, Z, addx_in_aag(X, Y, Z))
addx_in_aag(one(X), b, one(X)) → U4_aag(X, binary_in_g(X))
U4_aag(X, binary_out_g(X)) → addx_out_aag(one(X), b, one(X))
addx_in_aag(zero(X), b, zero(X)) → U5_aag(X, binaryZ_in_a(X))
U5_aag(X, binaryZ_out_a(X)) → addx_out_aag(zero(X), b, zero(X))
addx_in_aag(X, Y, Z) → U6_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(one(X), zero(Y), one(Z)) → U12_aag(X, Y, Z, addy_in_aag(X, Y, Z))
U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_aag(one(X), zero(Y), one(Z))
addz_in_aag(one(X), one(Y), zero(Z)) → U13_aag(X, Y, Z, addc_in_aaa(X, Y, Z))
U13_aag(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aag(one(X), one(Y), zero(Z))
U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addx_out_aag(X, Y, Z)
U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) → addz_out_aag(zero(X), one(Y), one(Z))
U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addy_out_aag(X, Y, Z)
U12_agg(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_agg(one(X), zero(Y), one(Z))
addz_in_agg(one(X), one(Y), zero(Z)) → U13_agg(X, Y, Z, addc_in_aga(X, Y, Z))
U13_agg(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_agg(one(X), one(Y), zero(Z))
U6_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → addx_out_agg(X, Y, Z)
U11_agg(X, Y, Z, addx_out_agg(X, Y, Z)) → addz_out_agg(zero(X), one(Y), one(Z))
U3_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → add_out_agg(X, Y, Z)
U37_aag(R, S, RSS, add_out_agg(S, zero(RS), RSS)) → times_out_aag(one(R), S, RSS)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PrologToPiTRSProof
ADDX_IN_AGG(X, Y, Z) → ADDZ_IN_AGG(X, Y, Z)
ADDZ_IN_AGG(zero(X), one(Y), one(Z)) → ADDX_IN_AGG(X, Y, Z)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PrologToPiTRSProof
ADDX_IN_AGG(Y, Z) → ADDZ_IN_AGG(Y, Z)
ADDZ_IN_AGG(one(Y), one(Z)) → ADDX_IN_AGG(Y, Z)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PrologToPiTRSProof
TIMES_IN_AAA(one(R), S, RSS) → TIMES_IN_AAA(R, S, RS)
TIMES_IN_AAA(zero(R), S, zero(RS)) → TIMES_IN_AAA(R, S, RS)
times_in_aag(one(b), X, X) → times_out_aag(one(b), X, X)
times_in_aag(zero(R), S, zero(RS)) → U35_aag(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(b), X, X) → times_out_aaa(one(b), X, X)
times_in_aaa(zero(R), S, zero(RS)) → U35_aaa(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(R), S, RSS) → U36_aaa(R, S, RSS, times_in_aaa(R, S, RS))
U36_aaa(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aaa(R, S, RSS, add_in_aga(S, zero(RS), RSS))
add_in_aga(b, b, b) → add_out_aga(b, b, b)
add_in_aga(X, b, X) → U1_aga(X, binaryZ_in_a(X))
binaryZ_in_a(zero(X)) → U29_a(X, binaryZ_in_a(X))
binaryZ_in_a(one(X)) → U30_a(X, binary_in_a(X))
binary_in_a(b) → binary_out_a(b)
binary_in_a(zero(X)) → U27_a(X, binaryZ_in_a(X))
U27_a(X, binaryZ_out_a(X)) → binary_out_a(zero(X))
binary_in_a(one(X)) → U28_a(X, binary_in_a(X))
U28_a(X, binary_out_a(X)) → binary_out_a(one(X))
U30_a(X, binary_out_a(X)) → binaryZ_out_a(one(X))
U29_a(X, binaryZ_out_a(X)) → binaryZ_out_a(zero(X))
U1_aga(X, binaryZ_out_a(X)) → add_out_aga(X, b, X)
add_in_aga(b, Y, Y) → U2_aga(Y, binaryZ_in_g(Y))
binaryZ_in_g(zero(X)) → U29_g(X, binaryZ_in_a(X))
U29_g(X, binaryZ_out_a(X)) → binaryZ_out_g(zero(X))
binaryZ_in_g(one(X)) → U30_g(X, binary_in_g(X))
binary_in_g(b) → binary_out_g(b)
binary_in_g(zero(X)) → U27_g(X, binaryZ_in_a(X))
U27_g(X, binaryZ_out_a(X)) → binary_out_g(zero(X))
binary_in_g(one(X)) → U28_g(X, binary_in_g(X))
U28_g(X, binary_out_g(X)) → binary_out_g(one(X))
U30_g(X, binary_out_g(X)) → binaryZ_out_g(one(X))
U2_aga(Y, binaryZ_out_g(Y)) → add_out_aga(b, Y, Y)
add_in_aga(X, Y, Z) → U3_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(zero(X), zero(Y), zero(Z)) → U10_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), zero(Y), zero(Z)) → U10_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), one(Y), one(Z)) → U11_aaa(X, Y, Z, addx_in_aaa(X, Y, Z))
addx_in_aaa(one(X), b, one(X)) → U4_aaa(X, binary_in_a(X))
U4_aaa(X, binary_out_a(X)) → addx_out_aaa(one(X), b, one(X))
addx_in_aaa(zero(X), b, zero(X)) → U5_aaa(X, binaryZ_in_a(X))
U5_aaa(X, binaryZ_out_a(X)) → addx_out_aaa(zero(X), b, zero(X))
addx_in_aaa(X, Y, Z) → U6_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), zero(Y), one(Z)) → U12_aaa(X, Y, Z, addy_in_aaa(X, Y, Z))
addy_in_aaa(b, one(Y), one(Y)) → U7_aaa(Y, binary_in_a(Y))
U7_aaa(Y, binary_out_a(Y)) → addy_out_aaa(b, one(Y), one(Y))
addy_in_aaa(b, zero(Y), zero(Y)) → U8_aaa(Y, binaryZ_in_a(Y))
U8_aaa(Y, binaryZ_out_a(Y)) → addy_out_aaa(b, zero(Y), zero(Y))
addy_in_aaa(X, Y, Z) → U9_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), one(Y), zero(Z)) → U13_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
addc_in_aaa(b, b, one(b)) → addc_out_aaa(b, b, one(b))
addc_in_aaa(X, b, Z) → U14_aaa(X, Z, succZ_in_aa(X, Z))
succZ_in_aa(zero(X), one(X)) → U33_aa(X, binaryZ_in_a(X))
U33_aa(X, binaryZ_out_a(X)) → succZ_out_aa(zero(X), one(X))
succZ_in_aa(one(X), zero(Z)) → U34_aa(X, Z, succ_in_aa(X, Z))
succ_in_aa(b, one(b)) → succ_out_aa(b, one(b))
succ_in_aa(zero(X), one(X)) → U31_aa(X, binaryZ_in_a(X))
U31_aa(X, binaryZ_out_a(X)) → succ_out_aa(zero(X), one(X))
succ_in_aa(one(X), zero(Z)) → U32_aa(X, Z, succ_in_aa(X, Z))
U32_aa(X, Z, succ_out_aa(X, Z)) → succ_out_aa(one(X), zero(Z))
U34_aa(X, Z, succ_out_aa(X, Z)) → succZ_out_aa(one(X), zero(Z))
U14_aaa(X, Z, succZ_out_aa(X, Z)) → addc_out_aaa(X, b, Z)
addc_in_aaa(b, Y, Z) → U15_aaa(Y, Z, succZ_in_aa(Y, Z))
U15_aaa(Y, Z, succZ_out_aa(Y, Z)) → addc_out_aaa(b, Y, Z)
addc_in_aaa(X, Y, Z) → U16_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(zero(X), zero(Y), one(Z)) → U23_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), zero(Y), one(Z))
addC_in_aaa(zero(X), one(Y), zero(Z)) → U24_aaa(X, Y, Z, addX_in_aaa(X, Y, Z))
addX_in_aaa(zero(X), b, one(X)) → U17_aaa(X, binaryZ_in_a(X))
U17_aaa(X, binaryZ_out_a(X)) → addX_out_aaa(zero(X), b, one(X))
addX_in_aaa(one(X), b, zero(Z)) → U18_aaa(X, Z, succ_in_aa(X, Z))
U18_aaa(X, Z, succ_out_aa(X, Z)) → addX_out_aaa(one(X), b, zero(Z))
addX_in_aaa(X, Y, Z) → U19_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), zero(Y), zero(Z)) → U25_aaa(X, Y, Z, addY_in_aaa(X, Y, Z))
addY_in_aaa(b, zero(Y), one(Y)) → U20_aaa(Y, binaryZ_in_a(Y))
U20_aaa(Y, binaryZ_out_a(Y)) → addY_out_aaa(b, zero(Y), one(Y))
addY_in_aaa(b, one(Y), zero(Z)) → U21_aaa(Y, Z, succ_in_aa(Y, Z))
U21_aaa(Y, Z, succ_out_aa(Y, Z)) → addY_out_aaa(b, one(Y), zero(Z))
addY_in_aaa(X, Y, Z) → U22_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), one(Y), one(Z)) → U26_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
U26_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), one(Y), one(Z))
U22_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addY_out_aaa(X, Y, Z)
U25_aaa(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), zero(Y), zero(Z))
U19_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addX_out_aaa(X, Y, Z)
U24_aaa(X, Y, Z, addX_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), one(Y), zero(Z))
U16_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addc_out_aaa(X, Y, Z)
U13_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), one(Y), zero(Z))
U9_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addy_out_aaa(X, Y, Z)
U12_aaa(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), zero(Y), one(Z))
U6_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addx_out_aaa(X, Y, Z)
U11_aaa(X, Y, Z, addx_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), one(Y), one(Z))
U10_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), zero(Y), zero(Z))
U10_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aga(zero(X), zero(Y), zero(Z))
addz_in_aga(zero(X), one(Y), one(Z)) → U11_aga(X, Y, Z, addx_in_aga(X, Y, Z))
addx_in_aga(one(X), b, one(X)) → U4_aga(X, binary_in_a(X))
U4_aga(X, binary_out_a(X)) → addx_out_aga(one(X), b, one(X))
addx_in_aga(zero(X), b, zero(X)) → U5_aga(X, binaryZ_in_a(X))
U5_aga(X, binaryZ_out_a(X)) → addx_out_aga(zero(X), b, zero(X))
addx_in_aga(X, Y, Z) → U6_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(one(X), zero(Y), one(Z)) → U12_aga(X, Y, Z, addy_in_aaa(X, Y, Z))
U12_aga(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aga(one(X), zero(Y), one(Z))
addz_in_aga(one(X), one(Y), zero(Z)) → U13_aga(X, Y, Z, addc_in_aga(X, Y, Z))
addc_in_aga(b, b, one(b)) → addc_out_aga(b, b, one(b))
addc_in_aga(X, b, Z) → U14_aga(X, Z, succZ_in_aa(X, Z))
U14_aga(X, Z, succZ_out_aa(X, Z)) → addc_out_aga(X, b, Z)
addc_in_aga(b, Y, Z) → U15_aga(Y, Z, succZ_in_ga(Y, Z))
succZ_in_ga(zero(X), one(X)) → U33_ga(X, binaryZ_in_a(X))
U33_ga(X, binaryZ_out_a(X)) → succZ_out_ga(zero(X), one(X))
succZ_in_ga(one(X), zero(Z)) → U34_ga(X, Z, succ_in_ga(X, Z))
succ_in_ga(b, one(b)) → succ_out_ga(b, one(b))
succ_in_ga(zero(X), one(X)) → U31_ga(X, binaryZ_in_a(X))
U31_ga(X, binaryZ_out_a(X)) → succ_out_ga(zero(X), one(X))
succ_in_ga(one(X), zero(Z)) → U32_ga(X, Z, succ_in_ga(X, Z))
U32_ga(X, Z, succ_out_ga(X, Z)) → succ_out_ga(one(X), zero(Z))
U34_ga(X, Z, succ_out_ga(X, Z)) → succZ_out_ga(one(X), zero(Z))
U15_aga(Y, Z, succZ_out_ga(Y, Z)) → addc_out_aga(b, Y, Z)
addc_in_aga(X, Y, Z) → U16_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(zero(X), zero(Y), one(Z)) → U23_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aga(zero(X), zero(Y), one(Z))
addC_in_aga(zero(X), one(Y), zero(Z)) → U24_aga(X, Y, Z, addX_in_aga(X, Y, Z))
addX_in_aga(zero(X), b, one(X)) → U17_aga(X, binaryZ_in_a(X))
U17_aga(X, binaryZ_out_a(X)) → addX_out_aga(zero(X), b, one(X))
addX_in_aga(one(X), b, zero(Z)) → U18_aga(X, Z, succ_in_aa(X, Z))
U18_aga(X, Z, succ_out_aa(X, Z)) → addX_out_aga(one(X), b, zero(Z))
addX_in_aga(X, Y, Z) → U19_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(one(X), zero(Y), zero(Z)) → U25_aga(X, Y, Z, addY_in_aaa(X, Y, Z))
U25_aga(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aga(one(X), zero(Y), zero(Z))
addC_in_aga(one(X), one(Y), one(Z)) → U26_aga(X, Y, Z, addc_in_aga(X, Y, Z))
U26_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addC_out_aga(one(X), one(Y), one(Z))
U19_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addX_out_aga(X, Y, Z)
U24_aga(X, Y, Z, addX_out_aga(X, Y, Z)) → addC_out_aga(zero(X), one(Y), zero(Z))
U16_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addc_out_aga(X, Y, Z)
U13_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_aga(one(X), one(Y), zero(Z))
U6_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → addx_out_aga(X, Y, Z)
U11_aga(X, Y, Z, addx_out_aga(X, Y, Z)) → addz_out_aga(zero(X), one(Y), one(Z))
U3_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → add_out_aga(X, Y, Z)
U37_aaa(R, S, RSS, add_out_aga(S, zero(RS), RSS)) → times_out_aaa(one(R), S, RSS)
U35_aaa(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aaa(zero(R), S, zero(RS))
U35_aag(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aag(zero(R), S, zero(RS))
times_in_aag(one(R), S, RSS) → U36_aag(R, S, RSS, times_in_aaa(R, S, RS))
U36_aag(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aag(R, S, RSS, add_in_agg(S, zero(RS), RSS))
add_in_agg(b, b, b) → add_out_agg(b, b, b)
add_in_agg(X, b, X) → U1_agg(X, binaryZ_in_g(X))
U1_agg(X, binaryZ_out_g(X)) → add_out_agg(X, b, X)
add_in_agg(b, Y, Y) → U2_agg(Y, binaryZ_in_g(Y))
U2_agg(Y, binaryZ_out_g(Y)) → add_out_agg(b, Y, Y)
add_in_agg(X, Y, Z) → U3_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(zero(X), zero(Y), zero(Z)) → U10_agg(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_agg(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_agg(zero(X), zero(Y), zero(Z))
addz_in_agg(zero(X), one(Y), one(Z)) → U11_agg(X, Y, Z, addx_in_agg(X, Y, Z))
addx_in_agg(one(X), b, one(X)) → U4_agg(X, binary_in_g(X))
U4_agg(X, binary_out_g(X)) → addx_out_agg(one(X), b, one(X))
addx_in_agg(zero(X), b, zero(X)) → U5_agg(X, binaryZ_in_a(X))
U5_agg(X, binaryZ_out_a(X)) → addx_out_agg(zero(X), b, zero(X))
addx_in_agg(X, Y, Z) → U6_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(one(X), zero(Y), one(Z)) → U12_agg(X, Y, Z, addy_in_aag(X, Y, Z))
addy_in_aag(b, one(Y), one(Y)) → U7_aag(Y, binary_in_g(Y))
U7_aag(Y, binary_out_g(Y)) → addy_out_aag(b, one(Y), one(Y))
addy_in_aag(b, zero(Y), zero(Y)) → U8_aag(Y, binaryZ_in_a(Y))
U8_aag(Y, binaryZ_out_a(Y)) → addy_out_aag(b, zero(Y), zero(Y))
addy_in_aag(X, Y, Z) → U9_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(zero(X), zero(Y), zero(Z)) → U10_aag(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_aag(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aag(zero(X), zero(Y), zero(Z))
addz_in_aag(zero(X), one(Y), one(Z)) → U11_aag(X, Y, Z, addx_in_aag(X, Y, Z))
addx_in_aag(one(X), b, one(X)) → U4_aag(X, binary_in_g(X))
U4_aag(X, binary_out_g(X)) → addx_out_aag(one(X), b, one(X))
addx_in_aag(zero(X), b, zero(X)) → U5_aag(X, binaryZ_in_a(X))
U5_aag(X, binaryZ_out_a(X)) → addx_out_aag(zero(X), b, zero(X))
addx_in_aag(X, Y, Z) → U6_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(one(X), zero(Y), one(Z)) → U12_aag(X, Y, Z, addy_in_aag(X, Y, Z))
U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_aag(one(X), zero(Y), one(Z))
addz_in_aag(one(X), one(Y), zero(Z)) → U13_aag(X, Y, Z, addc_in_aaa(X, Y, Z))
U13_aag(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aag(one(X), one(Y), zero(Z))
U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addx_out_aag(X, Y, Z)
U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) → addz_out_aag(zero(X), one(Y), one(Z))
U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addy_out_aag(X, Y, Z)
U12_agg(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_agg(one(X), zero(Y), one(Z))
addz_in_agg(one(X), one(Y), zero(Z)) → U13_agg(X, Y, Z, addc_in_aga(X, Y, Z))
U13_agg(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_agg(one(X), one(Y), zero(Z))
U6_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → addx_out_agg(X, Y, Z)
U11_agg(X, Y, Z, addx_out_agg(X, Y, Z)) → addz_out_agg(zero(X), one(Y), one(Z))
U3_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → add_out_agg(X, Y, Z)
U37_aag(R, S, RSS, add_out_agg(S, zero(RS), RSS)) → times_out_aag(one(R), S, RSS)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PrologToPiTRSProof
TIMES_IN_AAA(one(R), S, RSS) → TIMES_IN_AAA(R, S, RS)
TIMES_IN_AAA(zero(R), S, zero(RS)) → TIMES_IN_AAA(R, S, RS)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PrologToPiTRSProof
TIMES_IN_AAA → TIMES_IN_AAA
TIMES_IN_AAA → TIMES_IN_AAA
times_in_aag(one(b), X, X) → times_out_aag(one(b), X, X)
times_in_aag(zero(R), S, zero(RS)) → U35_aag(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(b), X, X) → times_out_aaa(one(b), X, X)
times_in_aaa(zero(R), S, zero(RS)) → U35_aaa(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(R), S, RSS) → U36_aaa(R, S, RSS, times_in_aaa(R, S, RS))
U36_aaa(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aaa(R, S, RSS, add_in_aga(S, zero(RS), RSS))
add_in_aga(b, b, b) → add_out_aga(b, b, b)
add_in_aga(X, b, X) → U1_aga(X, binaryZ_in_a(X))
binaryZ_in_a(zero(X)) → U29_a(X, binaryZ_in_a(X))
binaryZ_in_a(one(X)) → U30_a(X, binary_in_a(X))
binary_in_a(b) → binary_out_a(b)
binary_in_a(zero(X)) → U27_a(X, binaryZ_in_a(X))
U27_a(X, binaryZ_out_a(X)) → binary_out_a(zero(X))
binary_in_a(one(X)) → U28_a(X, binary_in_a(X))
U28_a(X, binary_out_a(X)) → binary_out_a(one(X))
U30_a(X, binary_out_a(X)) → binaryZ_out_a(one(X))
U29_a(X, binaryZ_out_a(X)) → binaryZ_out_a(zero(X))
U1_aga(X, binaryZ_out_a(X)) → add_out_aga(X, b, X)
add_in_aga(b, Y, Y) → U2_aga(Y, binaryZ_in_g(Y))
binaryZ_in_g(zero(X)) → U29_g(X, binaryZ_in_a(X))
U29_g(X, binaryZ_out_a(X)) → binaryZ_out_g(zero(X))
binaryZ_in_g(one(X)) → U30_g(X, binary_in_g(X))
binary_in_g(b) → binary_out_g(b)
binary_in_g(zero(X)) → U27_g(X, binaryZ_in_a(X))
U27_g(X, binaryZ_out_a(X)) → binary_out_g(zero(X))
binary_in_g(one(X)) → U28_g(X, binary_in_g(X))
U28_g(X, binary_out_g(X)) → binary_out_g(one(X))
U30_g(X, binary_out_g(X)) → binaryZ_out_g(one(X))
U2_aga(Y, binaryZ_out_g(Y)) → add_out_aga(b, Y, Y)
add_in_aga(X, Y, Z) → U3_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(zero(X), zero(Y), zero(Z)) → U10_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), zero(Y), zero(Z)) → U10_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), one(Y), one(Z)) → U11_aaa(X, Y, Z, addx_in_aaa(X, Y, Z))
addx_in_aaa(one(X), b, one(X)) → U4_aaa(X, binary_in_a(X))
U4_aaa(X, binary_out_a(X)) → addx_out_aaa(one(X), b, one(X))
addx_in_aaa(zero(X), b, zero(X)) → U5_aaa(X, binaryZ_in_a(X))
U5_aaa(X, binaryZ_out_a(X)) → addx_out_aaa(zero(X), b, zero(X))
addx_in_aaa(X, Y, Z) → U6_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), zero(Y), one(Z)) → U12_aaa(X, Y, Z, addy_in_aaa(X, Y, Z))
addy_in_aaa(b, one(Y), one(Y)) → U7_aaa(Y, binary_in_a(Y))
U7_aaa(Y, binary_out_a(Y)) → addy_out_aaa(b, one(Y), one(Y))
addy_in_aaa(b, zero(Y), zero(Y)) → U8_aaa(Y, binaryZ_in_a(Y))
U8_aaa(Y, binaryZ_out_a(Y)) → addy_out_aaa(b, zero(Y), zero(Y))
addy_in_aaa(X, Y, Z) → U9_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), one(Y), zero(Z)) → U13_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
addc_in_aaa(b, b, one(b)) → addc_out_aaa(b, b, one(b))
addc_in_aaa(X, b, Z) → U14_aaa(X, Z, succZ_in_aa(X, Z))
succZ_in_aa(zero(X), one(X)) → U33_aa(X, binaryZ_in_a(X))
U33_aa(X, binaryZ_out_a(X)) → succZ_out_aa(zero(X), one(X))
succZ_in_aa(one(X), zero(Z)) → U34_aa(X, Z, succ_in_aa(X, Z))
succ_in_aa(b, one(b)) → succ_out_aa(b, one(b))
succ_in_aa(zero(X), one(X)) → U31_aa(X, binaryZ_in_a(X))
U31_aa(X, binaryZ_out_a(X)) → succ_out_aa(zero(X), one(X))
succ_in_aa(one(X), zero(Z)) → U32_aa(X, Z, succ_in_aa(X, Z))
U32_aa(X, Z, succ_out_aa(X, Z)) → succ_out_aa(one(X), zero(Z))
U34_aa(X, Z, succ_out_aa(X, Z)) → succZ_out_aa(one(X), zero(Z))
U14_aaa(X, Z, succZ_out_aa(X, Z)) → addc_out_aaa(X, b, Z)
addc_in_aaa(b, Y, Z) → U15_aaa(Y, Z, succZ_in_aa(Y, Z))
U15_aaa(Y, Z, succZ_out_aa(Y, Z)) → addc_out_aaa(b, Y, Z)
addc_in_aaa(X, Y, Z) → U16_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(zero(X), zero(Y), one(Z)) → U23_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), zero(Y), one(Z))
addC_in_aaa(zero(X), one(Y), zero(Z)) → U24_aaa(X, Y, Z, addX_in_aaa(X, Y, Z))
addX_in_aaa(zero(X), b, one(X)) → U17_aaa(X, binaryZ_in_a(X))
U17_aaa(X, binaryZ_out_a(X)) → addX_out_aaa(zero(X), b, one(X))
addX_in_aaa(one(X), b, zero(Z)) → U18_aaa(X, Z, succ_in_aa(X, Z))
U18_aaa(X, Z, succ_out_aa(X, Z)) → addX_out_aaa(one(X), b, zero(Z))
addX_in_aaa(X, Y, Z) → U19_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), zero(Y), zero(Z)) → U25_aaa(X, Y, Z, addY_in_aaa(X, Y, Z))
addY_in_aaa(b, zero(Y), one(Y)) → U20_aaa(Y, binaryZ_in_a(Y))
U20_aaa(Y, binaryZ_out_a(Y)) → addY_out_aaa(b, zero(Y), one(Y))
addY_in_aaa(b, one(Y), zero(Z)) → U21_aaa(Y, Z, succ_in_aa(Y, Z))
U21_aaa(Y, Z, succ_out_aa(Y, Z)) → addY_out_aaa(b, one(Y), zero(Z))
addY_in_aaa(X, Y, Z) → U22_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), one(Y), one(Z)) → U26_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
U26_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), one(Y), one(Z))
U22_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addY_out_aaa(X, Y, Z)
U25_aaa(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), zero(Y), zero(Z))
U19_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addX_out_aaa(X, Y, Z)
U24_aaa(X, Y, Z, addX_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), one(Y), zero(Z))
U16_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addc_out_aaa(X, Y, Z)
U13_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), one(Y), zero(Z))
U9_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addy_out_aaa(X, Y, Z)
U12_aaa(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), zero(Y), one(Z))
U6_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addx_out_aaa(X, Y, Z)
U11_aaa(X, Y, Z, addx_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), one(Y), one(Z))
U10_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), zero(Y), zero(Z))
U10_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aga(zero(X), zero(Y), zero(Z))
addz_in_aga(zero(X), one(Y), one(Z)) → U11_aga(X, Y, Z, addx_in_aga(X, Y, Z))
addx_in_aga(one(X), b, one(X)) → U4_aga(X, binary_in_a(X))
U4_aga(X, binary_out_a(X)) → addx_out_aga(one(X), b, one(X))
addx_in_aga(zero(X), b, zero(X)) → U5_aga(X, binaryZ_in_a(X))
U5_aga(X, binaryZ_out_a(X)) → addx_out_aga(zero(X), b, zero(X))
addx_in_aga(X, Y, Z) → U6_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(one(X), zero(Y), one(Z)) → U12_aga(X, Y, Z, addy_in_aaa(X, Y, Z))
U12_aga(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aga(one(X), zero(Y), one(Z))
addz_in_aga(one(X), one(Y), zero(Z)) → U13_aga(X, Y, Z, addc_in_aga(X, Y, Z))
addc_in_aga(b, b, one(b)) → addc_out_aga(b, b, one(b))
addc_in_aga(X, b, Z) → U14_aga(X, Z, succZ_in_aa(X, Z))
U14_aga(X, Z, succZ_out_aa(X, Z)) → addc_out_aga(X, b, Z)
addc_in_aga(b, Y, Z) → U15_aga(Y, Z, succZ_in_ga(Y, Z))
succZ_in_ga(zero(X), one(X)) → U33_ga(X, binaryZ_in_a(X))
U33_ga(X, binaryZ_out_a(X)) → succZ_out_ga(zero(X), one(X))
succZ_in_ga(one(X), zero(Z)) → U34_ga(X, Z, succ_in_ga(X, Z))
succ_in_ga(b, one(b)) → succ_out_ga(b, one(b))
succ_in_ga(zero(X), one(X)) → U31_ga(X, binaryZ_in_a(X))
U31_ga(X, binaryZ_out_a(X)) → succ_out_ga(zero(X), one(X))
succ_in_ga(one(X), zero(Z)) → U32_ga(X, Z, succ_in_ga(X, Z))
U32_ga(X, Z, succ_out_ga(X, Z)) → succ_out_ga(one(X), zero(Z))
U34_ga(X, Z, succ_out_ga(X, Z)) → succZ_out_ga(one(X), zero(Z))
U15_aga(Y, Z, succZ_out_ga(Y, Z)) → addc_out_aga(b, Y, Z)
addc_in_aga(X, Y, Z) → U16_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(zero(X), zero(Y), one(Z)) → U23_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aga(zero(X), zero(Y), one(Z))
addC_in_aga(zero(X), one(Y), zero(Z)) → U24_aga(X, Y, Z, addX_in_aga(X, Y, Z))
addX_in_aga(zero(X), b, one(X)) → U17_aga(X, binaryZ_in_a(X))
U17_aga(X, binaryZ_out_a(X)) → addX_out_aga(zero(X), b, one(X))
addX_in_aga(one(X), b, zero(Z)) → U18_aga(X, Z, succ_in_aa(X, Z))
U18_aga(X, Z, succ_out_aa(X, Z)) → addX_out_aga(one(X), b, zero(Z))
addX_in_aga(X, Y, Z) → U19_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(one(X), zero(Y), zero(Z)) → U25_aga(X, Y, Z, addY_in_aaa(X, Y, Z))
U25_aga(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aga(one(X), zero(Y), zero(Z))
addC_in_aga(one(X), one(Y), one(Z)) → U26_aga(X, Y, Z, addc_in_aga(X, Y, Z))
U26_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addC_out_aga(one(X), one(Y), one(Z))
U19_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addX_out_aga(X, Y, Z)
U24_aga(X, Y, Z, addX_out_aga(X, Y, Z)) → addC_out_aga(zero(X), one(Y), zero(Z))
U16_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addc_out_aga(X, Y, Z)
U13_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_aga(one(X), one(Y), zero(Z))
U6_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → addx_out_aga(X, Y, Z)
U11_aga(X, Y, Z, addx_out_aga(X, Y, Z)) → addz_out_aga(zero(X), one(Y), one(Z))
U3_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → add_out_aga(X, Y, Z)
U37_aaa(R, S, RSS, add_out_aga(S, zero(RS), RSS)) → times_out_aaa(one(R), S, RSS)
U35_aaa(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aaa(zero(R), S, zero(RS))
U35_aag(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aag(zero(R), S, zero(RS))
times_in_aag(one(R), S, RSS) → U36_aag(R, S, RSS, times_in_aaa(R, S, RS))
U36_aag(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aag(R, S, RSS, add_in_agg(S, zero(RS), RSS))
add_in_agg(b, b, b) → add_out_agg(b, b, b)
add_in_agg(X, b, X) → U1_agg(X, binaryZ_in_g(X))
U1_agg(X, binaryZ_out_g(X)) → add_out_agg(X, b, X)
add_in_agg(b, Y, Y) → U2_agg(Y, binaryZ_in_g(Y))
U2_agg(Y, binaryZ_out_g(Y)) → add_out_agg(b, Y, Y)
add_in_agg(X, Y, Z) → U3_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(zero(X), zero(Y), zero(Z)) → U10_agg(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_agg(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_agg(zero(X), zero(Y), zero(Z))
addz_in_agg(zero(X), one(Y), one(Z)) → U11_agg(X, Y, Z, addx_in_agg(X, Y, Z))
addx_in_agg(one(X), b, one(X)) → U4_agg(X, binary_in_g(X))
U4_agg(X, binary_out_g(X)) → addx_out_agg(one(X), b, one(X))
addx_in_agg(zero(X), b, zero(X)) → U5_agg(X, binaryZ_in_a(X))
U5_agg(X, binaryZ_out_a(X)) → addx_out_agg(zero(X), b, zero(X))
addx_in_agg(X, Y, Z) → U6_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(one(X), zero(Y), one(Z)) → U12_agg(X, Y, Z, addy_in_aag(X, Y, Z))
addy_in_aag(b, one(Y), one(Y)) → U7_aag(Y, binary_in_g(Y))
U7_aag(Y, binary_out_g(Y)) → addy_out_aag(b, one(Y), one(Y))
addy_in_aag(b, zero(Y), zero(Y)) → U8_aag(Y, binaryZ_in_a(Y))
U8_aag(Y, binaryZ_out_a(Y)) → addy_out_aag(b, zero(Y), zero(Y))
addy_in_aag(X, Y, Z) → U9_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(zero(X), zero(Y), zero(Z)) → U10_aag(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_aag(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aag(zero(X), zero(Y), zero(Z))
addz_in_aag(zero(X), one(Y), one(Z)) → U11_aag(X, Y, Z, addx_in_aag(X, Y, Z))
addx_in_aag(one(X), b, one(X)) → U4_aag(X, binary_in_g(X))
U4_aag(X, binary_out_g(X)) → addx_out_aag(one(X), b, one(X))
addx_in_aag(zero(X), b, zero(X)) → U5_aag(X, binaryZ_in_a(X))
U5_aag(X, binaryZ_out_a(X)) → addx_out_aag(zero(X), b, zero(X))
addx_in_aag(X, Y, Z) → U6_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(one(X), zero(Y), one(Z)) → U12_aag(X, Y, Z, addy_in_aag(X, Y, Z))
U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_aag(one(X), zero(Y), one(Z))
addz_in_aag(one(X), one(Y), zero(Z)) → U13_aag(X, Y, Z, addc_in_aaa(X, Y, Z))
U13_aag(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aag(one(X), one(Y), zero(Z))
U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addx_out_aag(X, Y, Z)
U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) → addz_out_aag(zero(X), one(Y), one(Z))
U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addy_out_aag(X, Y, Z)
U12_agg(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_agg(one(X), zero(Y), one(Z))
addz_in_agg(one(X), one(Y), zero(Z)) → U13_agg(X, Y, Z, addc_in_aga(X, Y, Z))
U13_agg(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_agg(one(X), one(Y), zero(Z))
U6_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → addx_out_agg(X, Y, Z)
U11_agg(X, Y, Z, addx_out_agg(X, Y, Z)) → addz_out_agg(zero(X), one(Y), one(Z))
U3_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → add_out_agg(X, Y, Z)
U37_aag(R, S, RSS, add_out_agg(S, zero(RS), RSS)) → times_out_aag(one(R), S, RSS)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
times_in_aag(one(b), X, X) → times_out_aag(one(b), X, X)
times_in_aag(zero(R), S, zero(RS)) → U35_aag(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(b), X, X) → times_out_aaa(one(b), X, X)
times_in_aaa(zero(R), S, zero(RS)) → U35_aaa(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(R), S, RSS) → U36_aaa(R, S, RSS, times_in_aaa(R, S, RS))
U36_aaa(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aaa(R, S, RSS, add_in_aga(S, zero(RS), RSS))
add_in_aga(b, b, b) → add_out_aga(b, b, b)
add_in_aga(X, b, X) → U1_aga(X, binaryZ_in_a(X))
binaryZ_in_a(zero(X)) → U29_a(X, binaryZ_in_a(X))
binaryZ_in_a(one(X)) → U30_a(X, binary_in_a(X))
binary_in_a(b) → binary_out_a(b)
binary_in_a(zero(X)) → U27_a(X, binaryZ_in_a(X))
U27_a(X, binaryZ_out_a(X)) → binary_out_a(zero(X))
binary_in_a(one(X)) → U28_a(X, binary_in_a(X))
U28_a(X, binary_out_a(X)) → binary_out_a(one(X))
U30_a(X, binary_out_a(X)) → binaryZ_out_a(one(X))
U29_a(X, binaryZ_out_a(X)) → binaryZ_out_a(zero(X))
U1_aga(X, binaryZ_out_a(X)) → add_out_aga(X, b, X)
add_in_aga(b, Y, Y) → U2_aga(Y, binaryZ_in_g(Y))
binaryZ_in_g(zero(X)) → U29_g(X, binaryZ_in_a(X))
U29_g(X, binaryZ_out_a(X)) → binaryZ_out_g(zero(X))
binaryZ_in_g(one(X)) → U30_g(X, binary_in_g(X))
binary_in_g(b) → binary_out_g(b)
binary_in_g(zero(X)) → U27_g(X, binaryZ_in_a(X))
U27_g(X, binaryZ_out_a(X)) → binary_out_g(zero(X))
binary_in_g(one(X)) → U28_g(X, binary_in_g(X))
U28_g(X, binary_out_g(X)) → binary_out_g(one(X))
U30_g(X, binary_out_g(X)) → binaryZ_out_g(one(X))
U2_aga(Y, binaryZ_out_g(Y)) → add_out_aga(b, Y, Y)
add_in_aga(X, Y, Z) → U3_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(zero(X), zero(Y), zero(Z)) → U10_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), zero(Y), zero(Z)) → U10_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), one(Y), one(Z)) → U11_aaa(X, Y, Z, addx_in_aaa(X, Y, Z))
addx_in_aaa(one(X), b, one(X)) → U4_aaa(X, binary_in_a(X))
U4_aaa(X, binary_out_a(X)) → addx_out_aaa(one(X), b, one(X))
addx_in_aaa(zero(X), b, zero(X)) → U5_aaa(X, binaryZ_in_a(X))
U5_aaa(X, binaryZ_out_a(X)) → addx_out_aaa(zero(X), b, zero(X))
addx_in_aaa(X, Y, Z) → U6_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), zero(Y), one(Z)) → U12_aaa(X, Y, Z, addy_in_aaa(X, Y, Z))
addy_in_aaa(b, one(Y), one(Y)) → U7_aaa(Y, binary_in_a(Y))
U7_aaa(Y, binary_out_a(Y)) → addy_out_aaa(b, one(Y), one(Y))
addy_in_aaa(b, zero(Y), zero(Y)) → U8_aaa(Y, binaryZ_in_a(Y))
U8_aaa(Y, binaryZ_out_a(Y)) → addy_out_aaa(b, zero(Y), zero(Y))
addy_in_aaa(X, Y, Z) → U9_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), one(Y), zero(Z)) → U13_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
addc_in_aaa(b, b, one(b)) → addc_out_aaa(b, b, one(b))
addc_in_aaa(X, b, Z) → U14_aaa(X, Z, succZ_in_aa(X, Z))
succZ_in_aa(zero(X), one(X)) → U33_aa(X, binaryZ_in_a(X))
U33_aa(X, binaryZ_out_a(X)) → succZ_out_aa(zero(X), one(X))
succZ_in_aa(one(X), zero(Z)) → U34_aa(X, Z, succ_in_aa(X, Z))
succ_in_aa(b, one(b)) → succ_out_aa(b, one(b))
succ_in_aa(zero(X), one(X)) → U31_aa(X, binaryZ_in_a(X))
U31_aa(X, binaryZ_out_a(X)) → succ_out_aa(zero(X), one(X))
succ_in_aa(one(X), zero(Z)) → U32_aa(X, Z, succ_in_aa(X, Z))
U32_aa(X, Z, succ_out_aa(X, Z)) → succ_out_aa(one(X), zero(Z))
U34_aa(X, Z, succ_out_aa(X, Z)) → succZ_out_aa(one(X), zero(Z))
U14_aaa(X, Z, succZ_out_aa(X, Z)) → addc_out_aaa(X, b, Z)
addc_in_aaa(b, Y, Z) → U15_aaa(Y, Z, succZ_in_aa(Y, Z))
U15_aaa(Y, Z, succZ_out_aa(Y, Z)) → addc_out_aaa(b, Y, Z)
addc_in_aaa(X, Y, Z) → U16_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(zero(X), zero(Y), one(Z)) → U23_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), zero(Y), one(Z))
addC_in_aaa(zero(X), one(Y), zero(Z)) → U24_aaa(X, Y, Z, addX_in_aaa(X, Y, Z))
addX_in_aaa(zero(X), b, one(X)) → U17_aaa(X, binaryZ_in_a(X))
U17_aaa(X, binaryZ_out_a(X)) → addX_out_aaa(zero(X), b, one(X))
addX_in_aaa(one(X), b, zero(Z)) → U18_aaa(X, Z, succ_in_aa(X, Z))
U18_aaa(X, Z, succ_out_aa(X, Z)) → addX_out_aaa(one(X), b, zero(Z))
addX_in_aaa(X, Y, Z) → U19_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), zero(Y), zero(Z)) → U25_aaa(X, Y, Z, addY_in_aaa(X, Y, Z))
addY_in_aaa(b, zero(Y), one(Y)) → U20_aaa(Y, binaryZ_in_a(Y))
U20_aaa(Y, binaryZ_out_a(Y)) → addY_out_aaa(b, zero(Y), one(Y))
addY_in_aaa(b, one(Y), zero(Z)) → U21_aaa(Y, Z, succ_in_aa(Y, Z))
U21_aaa(Y, Z, succ_out_aa(Y, Z)) → addY_out_aaa(b, one(Y), zero(Z))
addY_in_aaa(X, Y, Z) → U22_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), one(Y), one(Z)) → U26_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
U26_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), one(Y), one(Z))
U22_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addY_out_aaa(X, Y, Z)
U25_aaa(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), zero(Y), zero(Z))
U19_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addX_out_aaa(X, Y, Z)
U24_aaa(X, Y, Z, addX_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), one(Y), zero(Z))
U16_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addc_out_aaa(X, Y, Z)
U13_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), one(Y), zero(Z))
U9_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addy_out_aaa(X, Y, Z)
U12_aaa(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), zero(Y), one(Z))
U6_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addx_out_aaa(X, Y, Z)
U11_aaa(X, Y, Z, addx_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), one(Y), one(Z))
U10_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), zero(Y), zero(Z))
U10_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aga(zero(X), zero(Y), zero(Z))
addz_in_aga(zero(X), one(Y), one(Z)) → U11_aga(X, Y, Z, addx_in_aga(X, Y, Z))
addx_in_aga(one(X), b, one(X)) → U4_aga(X, binary_in_a(X))
U4_aga(X, binary_out_a(X)) → addx_out_aga(one(X), b, one(X))
addx_in_aga(zero(X), b, zero(X)) → U5_aga(X, binaryZ_in_a(X))
U5_aga(X, binaryZ_out_a(X)) → addx_out_aga(zero(X), b, zero(X))
addx_in_aga(X, Y, Z) → U6_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(one(X), zero(Y), one(Z)) → U12_aga(X, Y, Z, addy_in_aaa(X, Y, Z))
U12_aga(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aga(one(X), zero(Y), one(Z))
addz_in_aga(one(X), one(Y), zero(Z)) → U13_aga(X, Y, Z, addc_in_aga(X, Y, Z))
addc_in_aga(b, b, one(b)) → addc_out_aga(b, b, one(b))
addc_in_aga(X, b, Z) → U14_aga(X, Z, succZ_in_aa(X, Z))
U14_aga(X, Z, succZ_out_aa(X, Z)) → addc_out_aga(X, b, Z)
addc_in_aga(b, Y, Z) → U15_aga(Y, Z, succZ_in_ga(Y, Z))
succZ_in_ga(zero(X), one(X)) → U33_ga(X, binaryZ_in_a(X))
U33_ga(X, binaryZ_out_a(X)) → succZ_out_ga(zero(X), one(X))
succZ_in_ga(one(X), zero(Z)) → U34_ga(X, Z, succ_in_ga(X, Z))
succ_in_ga(b, one(b)) → succ_out_ga(b, one(b))
succ_in_ga(zero(X), one(X)) → U31_ga(X, binaryZ_in_a(X))
U31_ga(X, binaryZ_out_a(X)) → succ_out_ga(zero(X), one(X))
succ_in_ga(one(X), zero(Z)) → U32_ga(X, Z, succ_in_ga(X, Z))
U32_ga(X, Z, succ_out_ga(X, Z)) → succ_out_ga(one(X), zero(Z))
U34_ga(X, Z, succ_out_ga(X, Z)) → succZ_out_ga(one(X), zero(Z))
U15_aga(Y, Z, succZ_out_ga(Y, Z)) → addc_out_aga(b, Y, Z)
addc_in_aga(X, Y, Z) → U16_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(zero(X), zero(Y), one(Z)) → U23_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aga(zero(X), zero(Y), one(Z))
addC_in_aga(zero(X), one(Y), zero(Z)) → U24_aga(X, Y, Z, addX_in_aga(X, Y, Z))
addX_in_aga(zero(X), b, one(X)) → U17_aga(X, binaryZ_in_a(X))
U17_aga(X, binaryZ_out_a(X)) → addX_out_aga(zero(X), b, one(X))
addX_in_aga(one(X), b, zero(Z)) → U18_aga(X, Z, succ_in_aa(X, Z))
U18_aga(X, Z, succ_out_aa(X, Z)) → addX_out_aga(one(X), b, zero(Z))
addX_in_aga(X, Y, Z) → U19_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(one(X), zero(Y), zero(Z)) → U25_aga(X, Y, Z, addY_in_aaa(X, Y, Z))
U25_aga(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aga(one(X), zero(Y), zero(Z))
addC_in_aga(one(X), one(Y), one(Z)) → U26_aga(X, Y, Z, addc_in_aga(X, Y, Z))
U26_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addC_out_aga(one(X), one(Y), one(Z))
U19_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addX_out_aga(X, Y, Z)
U24_aga(X, Y, Z, addX_out_aga(X, Y, Z)) → addC_out_aga(zero(X), one(Y), zero(Z))
U16_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addc_out_aga(X, Y, Z)
U13_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_aga(one(X), one(Y), zero(Z))
U6_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → addx_out_aga(X, Y, Z)
U11_aga(X, Y, Z, addx_out_aga(X, Y, Z)) → addz_out_aga(zero(X), one(Y), one(Z))
U3_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → add_out_aga(X, Y, Z)
U37_aaa(R, S, RSS, add_out_aga(S, zero(RS), RSS)) → times_out_aaa(one(R), S, RSS)
U35_aaa(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aaa(zero(R), S, zero(RS))
U35_aag(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aag(zero(R), S, zero(RS))
times_in_aag(one(R), S, RSS) → U36_aag(R, S, RSS, times_in_aaa(R, S, RS))
U36_aag(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aag(R, S, RSS, add_in_agg(S, zero(RS), RSS))
add_in_agg(b, b, b) → add_out_agg(b, b, b)
add_in_agg(X, b, X) → U1_agg(X, binaryZ_in_g(X))
U1_agg(X, binaryZ_out_g(X)) → add_out_agg(X, b, X)
add_in_agg(b, Y, Y) → U2_agg(Y, binaryZ_in_g(Y))
U2_agg(Y, binaryZ_out_g(Y)) → add_out_agg(b, Y, Y)
add_in_agg(X, Y, Z) → U3_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(zero(X), zero(Y), zero(Z)) → U10_agg(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_agg(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_agg(zero(X), zero(Y), zero(Z))
addz_in_agg(zero(X), one(Y), one(Z)) → U11_agg(X, Y, Z, addx_in_agg(X, Y, Z))
addx_in_agg(one(X), b, one(X)) → U4_agg(X, binary_in_g(X))
U4_agg(X, binary_out_g(X)) → addx_out_agg(one(X), b, one(X))
addx_in_agg(zero(X), b, zero(X)) → U5_agg(X, binaryZ_in_a(X))
U5_agg(X, binaryZ_out_a(X)) → addx_out_agg(zero(X), b, zero(X))
addx_in_agg(X, Y, Z) → U6_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(one(X), zero(Y), one(Z)) → U12_agg(X, Y, Z, addy_in_aag(X, Y, Z))
addy_in_aag(b, one(Y), one(Y)) → U7_aag(Y, binary_in_g(Y))
U7_aag(Y, binary_out_g(Y)) → addy_out_aag(b, one(Y), one(Y))
addy_in_aag(b, zero(Y), zero(Y)) → U8_aag(Y, binaryZ_in_a(Y))
U8_aag(Y, binaryZ_out_a(Y)) → addy_out_aag(b, zero(Y), zero(Y))
addy_in_aag(X, Y, Z) → U9_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(zero(X), zero(Y), zero(Z)) → U10_aag(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_aag(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aag(zero(X), zero(Y), zero(Z))
addz_in_aag(zero(X), one(Y), one(Z)) → U11_aag(X, Y, Z, addx_in_aag(X, Y, Z))
addx_in_aag(one(X), b, one(X)) → U4_aag(X, binary_in_g(X))
U4_aag(X, binary_out_g(X)) → addx_out_aag(one(X), b, one(X))
addx_in_aag(zero(X), b, zero(X)) → U5_aag(X, binaryZ_in_a(X))
U5_aag(X, binaryZ_out_a(X)) → addx_out_aag(zero(X), b, zero(X))
addx_in_aag(X, Y, Z) → U6_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(one(X), zero(Y), one(Z)) → U12_aag(X, Y, Z, addy_in_aag(X, Y, Z))
U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_aag(one(X), zero(Y), one(Z))
addz_in_aag(one(X), one(Y), zero(Z)) → U13_aag(X, Y, Z, addc_in_aaa(X, Y, Z))
U13_aag(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aag(one(X), one(Y), zero(Z))
U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addx_out_aag(X, Y, Z)
U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) → addz_out_aag(zero(X), one(Y), one(Z))
U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addy_out_aag(X, Y, Z)
U12_agg(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_agg(one(X), zero(Y), one(Z))
addz_in_agg(one(X), one(Y), zero(Z)) → U13_agg(X, Y, Z, addc_in_aga(X, Y, Z))
U13_agg(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_agg(one(X), one(Y), zero(Z))
U6_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → addx_out_agg(X, Y, Z)
U11_agg(X, Y, Z, addx_out_agg(X, Y, Z)) → addz_out_agg(zero(X), one(Y), one(Z))
U3_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → add_out_agg(X, Y, Z)
U37_aag(R, S, RSS, add_out_agg(S, zero(RS), RSS)) → times_out_aag(one(R), S, RSS)
TIMES_IN_AAG(zero(R), S, zero(RS)) → U35_AAG(R, S, RS, times_in_aaa(R, S, RS))
TIMES_IN_AAG(zero(R), S, zero(RS)) → TIMES_IN_AAA(R, S, RS)
TIMES_IN_AAA(zero(R), S, zero(RS)) → U35_AAA(R, S, RS, times_in_aaa(R, S, RS))
TIMES_IN_AAA(zero(R), S, zero(RS)) → TIMES_IN_AAA(R, S, RS)
TIMES_IN_AAA(one(R), S, RSS) → U36_AAA(R, S, RSS, times_in_aaa(R, S, RS))
TIMES_IN_AAA(one(R), S, RSS) → TIMES_IN_AAA(R, S, RS)
U36_AAA(R, S, RSS, times_out_aaa(R, S, RS)) → U37_AAA(R, S, RSS, add_in_aga(S, zero(RS), RSS))
U36_AAA(R, S, RSS, times_out_aaa(R, S, RS)) → ADD_IN_AGA(S, zero(RS), RSS)
ADD_IN_AGA(X, b, X) → U1_AGA(X, binaryZ_in_a(X))
ADD_IN_AGA(X, b, X) → BINARYZ_IN_A(X)
BINARYZ_IN_A(zero(X)) → U29_A(X, binaryZ_in_a(X))
BINARYZ_IN_A(zero(X)) → BINARYZ_IN_A(X)
BINARYZ_IN_A(one(X)) → U30_A(X, binary_in_a(X))
BINARYZ_IN_A(one(X)) → BINARY_IN_A(X)
BINARY_IN_A(zero(X)) → U27_A(X, binaryZ_in_a(X))
BINARY_IN_A(zero(X)) → BINARYZ_IN_A(X)
BINARY_IN_A(one(X)) → U28_A(X, binary_in_a(X))
BINARY_IN_A(one(X)) → BINARY_IN_A(X)
ADD_IN_AGA(b, Y, Y) → U2_AGA(Y, binaryZ_in_g(Y))
ADD_IN_AGA(b, Y, Y) → BINARYZ_IN_G(Y)
BINARYZ_IN_G(zero(X)) → U29_G(X, binaryZ_in_a(X))
BINARYZ_IN_G(zero(X)) → BINARYZ_IN_A(X)
BINARYZ_IN_G(one(X)) → U30_G(X, binary_in_g(X))
BINARYZ_IN_G(one(X)) → BINARY_IN_G(X)
BINARY_IN_G(zero(X)) → U27_G(X, binaryZ_in_a(X))
BINARY_IN_G(zero(X)) → BINARYZ_IN_A(X)
BINARY_IN_G(one(X)) → U28_G(X, binary_in_g(X))
BINARY_IN_G(one(X)) → BINARY_IN_G(X)
ADD_IN_AGA(X, Y, Z) → U3_AGA(X, Y, Z, addz_in_aga(X, Y, Z))
ADD_IN_AGA(X, Y, Z) → ADDZ_IN_AGA(X, Y, Z)
ADDZ_IN_AGA(zero(X), zero(Y), zero(Z)) → U10_AGA(X, Y, Z, addz_in_aaa(X, Y, Z))
ADDZ_IN_AGA(zero(X), zero(Y), zero(Z)) → ADDZ_IN_AAA(X, Y, Z)
ADDZ_IN_AAA(zero(X), zero(Y), zero(Z)) → U10_AAA(X, Y, Z, addz_in_aaa(X, Y, Z))
ADDZ_IN_AAA(zero(X), zero(Y), zero(Z)) → ADDZ_IN_AAA(X, Y, Z)
ADDZ_IN_AAA(zero(X), one(Y), one(Z)) → U11_AAA(X, Y, Z, addx_in_aaa(X, Y, Z))
ADDZ_IN_AAA(zero(X), one(Y), one(Z)) → ADDX_IN_AAA(X, Y, Z)
ADDX_IN_AAA(one(X), b, one(X)) → U4_AAA(X, binary_in_a(X))
ADDX_IN_AAA(one(X), b, one(X)) → BINARY_IN_A(X)
ADDX_IN_AAA(zero(X), b, zero(X)) → U5_AAA(X, binaryZ_in_a(X))
ADDX_IN_AAA(zero(X), b, zero(X)) → BINARYZ_IN_A(X)
ADDX_IN_AAA(X, Y, Z) → U6_AAA(X, Y, Z, addz_in_aaa(X, Y, Z))
ADDX_IN_AAA(X, Y, Z) → ADDZ_IN_AAA(X, Y, Z)
ADDZ_IN_AAA(one(X), zero(Y), one(Z)) → U12_AAA(X, Y, Z, addy_in_aaa(X, Y, Z))
ADDZ_IN_AAA(one(X), zero(Y), one(Z)) → ADDY_IN_AAA(X, Y, Z)
ADDY_IN_AAA(b, one(Y), one(Y)) → U7_AAA(Y, binary_in_a(Y))
ADDY_IN_AAA(b, one(Y), one(Y)) → BINARY_IN_A(Y)
ADDY_IN_AAA(b, zero(Y), zero(Y)) → U8_AAA(Y, binaryZ_in_a(Y))
ADDY_IN_AAA(b, zero(Y), zero(Y)) → BINARYZ_IN_A(Y)
ADDY_IN_AAA(X, Y, Z) → U9_AAA(X, Y, Z, addz_in_aaa(X, Y, Z))
ADDY_IN_AAA(X, Y, Z) → ADDZ_IN_AAA(X, Y, Z)
ADDZ_IN_AAA(one(X), one(Y), zero(Z)) → U13_AAA(X, Y, Z, addc_in_aaa(X, Y, Z))
ADDZ_IN_AAA(one(X), one(Y), zero(Z)) → ADDC_IN_AAA(X, Y, Z)
ADDC_IN_AAA(X, b, Z) → U14_AAA(X, Z, succZ_in_aa(X, Z))
ADDC_IN_AAA(X, b, Z) → SUCCZ_IN_AA(X, Z)
SUCCZ_IN_AA(zero(X), one(X)) → U33_AA(X, binaryZ_in_a(X))
SUCCZ_IN_AA(zero(X), one(X)) → BINARYZ_IN_A(X)
SUCCZ_IN_AA(one(X), zero(Z)) → U34_AA(X, Z, succ_in_aa(X, Z))
SUCCZ_IN_AA(one(X), zero(Z)) → SUCC_IN_AA(X, Z)
SUCC_IN_AA(zero(X), one(X)) → U31_AA(X, binaryZ_in_a(X))
SUCC_IN_AA(zero(X), one(X)) → BINARYZ_IN_A(X)
SUCC_IN_AA(one(X), zero(Z)) → U32_AA(X, Z, succ_in_aa(X, Z))
SUCC_IN_AA(one(X), zero(Z)) → SUCC_IN_AA(X, Z)
ADDC_IN_AAA(b, Y, Z) → U15_AAA(Y, Z, succZ_in_aa(Y, Z))
ADDC_IN_AAA(b, Y, Z) → SUCCZ_IN_AA(Y, Z)
ADDC_IN_AAA(X, Y, Z) → U16_AAA(X, Y, Z, addC_in_aaa(X, Y, Z))
ADDC_IN_AAA(X, Y, Z) → ADDC_IN_AAA1(X, Y, Z)
ADDC_IN_AAA1(zero(X), zero(Y), one(Z)) → U23_AAA(X, Y, Z, addz_in_aaa(X, Y, Z))
ADDC_IN_AAA1(zero(X), zero(Y), one(Z)) → ADDZ_IN_AAA(X, Y, Z)
ADDC_IN_AAA1(zero(X), one(Y), zero(Z)) → U24_AAA(X, Y, Z, addX_in_aaa(X, Y, Z))
ADDC_IN_AAA1(zero(X), one(Y), zero(Z)) → ADDX_IN_AAA1(X, Y, Z)
ADDX_IN_AAA1(zero(X), b, one(X)) → U17_AAA(X, binaryZ_in_a(X))
ADDX_IN_AAA1(zero(X), b, one(X)) → BINARYZ_IN_A(X)
ADDX_IN_AAA1(one(X), b, zero(Z)) → U18_AAA(X, Z, succ_in_aa(X, Z))
ADDX_IN_AAA1(one(X), b, zero(Z)) → SUCC_IN_AA(X, Z)
ADDX_IN_AAA1(X, Y, Z) → U19_AAA(X, Y, Z, addC_in_aaa(X, Y, Z))
ADDX_IN_AAA1(X, Y, Z) → ADDC_IN_AAA1(X, Y, Z)
ADDC_IN_AAA1(one(X), zero(Y), zero(Z)) → U25_AAA(X, Y, Z, addY_in_aaa(X, Y, Z))
ADDC_IN_AAA1(one(X), zero(Y), zero(Z)) → ADDY_IN_AAA1(X, Y, Z)
ADDY_IN_AAA1(b, zero(Y), one(Y)) → U20_AAA(Y, binaryZ_in_a(Y))
ADDY_IN_AAA1(b, zero(Y), one(Y)) → BINARYZ_IN_A(Y)
ADDY_IN_AAA1(b, one(Y), zero(Z)) → U21_AAA(Y, Z, succ_in_aa(Y, Z))
ADDY_IN_AAA1(b, one(Y), zero(Z)) → SUCC_IN_AA(Y, Z)
ADDY_IN_AAA1(X, Y, Z) → U22_AAA(X, Y, Z, addC_in_aaa(X, Y, Z))
ADDY_IN_AAA1(X, Y, Z) → ADDC_IN_AAA1(X, Y, Z)
ADDC_IN_AAA1(one(X), one(Y), one(Z)) → U26_AAA(X, Y, Z, addc_in_aaa(X, Y, Z))
ADDC_IN_AAA1(one(X), one(Y), one(Z)) → ADDC_IN_AAA(X, Y, Z)
ADDZ_IN_AGA(zero(X), one(Y), one(Z)) → U11_AGA(X, Y, Z, addx_in_aga(X, Y, Z))
ADDZ_IN_AGA(zero(X), one(Y), one(Z)) → ADDX_IN_AGA(X, Y, Z)
ADDX_IN_AGA(one(X), b, one(X)) → U4_AGA(X, binary_in_a(X))
ADDX_IN_AGA(one(X), b, one(X)) → BINARY_IN_A(X)
ADDX_IN_AGA(zero(X), b, zero(X)) → U5_AGA(X, binaryZ_in_a(X))
ADDX_IN_AGA(zero(X), b, zero(X)) → BINARYZ_IN_A(X)
ADDX_IN_AGA(X, Y, Z) → U6_AGA(X, Y, Z, addz_in_aga(X, Y, Z))
ADDX_IN_AGA(X, Y, Z) → ADDZ_IN_AGA(X, Y, Z)
ADDZ_IN_AGA(one(X), zero(Y), one(Z)) → U12_AGA(X, Y, Z, addy_in_aaa(X, Y, Z))
ADDZ_IN_AGA(one(X), zero(Y), one(Z)) → ADDY_IN_AAA(X, Y, Z)
ADDZ_IN_AGA(one(X), one(Y), zero(Z)) → U13_AGA(X, Y, Z, addc_in_aga(X, Y, Z))
ADDZ_IN_AGA(one(X), one(Y), zero(Z)) → ADDC_IN_AGA(X, Y, Z)
ADDC_IN_AGA(X, b, Z) → U14_AGA(X, Z, succZ_in_aa(X, Z))
ADDC_IN_AGA(X, b, Z) → SUCCZ_IN_AA(X, Z)
ADDC_IN_AGA(b, Y, Z) → U15_AGA(Y, Z, succZ_in_ga(Y, Z))
ADDC_IN_AGA(b, Y, Z) → SUCCZ_IN_GA(Y, Z)
SUCCZ_IN_GA(zero(X), one(X)) → U33_GA(X, binaryZ_in_a(X))
SUCCZ_IN_GA(zero(X), one(X)) → BINARYZ_IN_A(X)
SUCCZ_IN_GA(one(X), zero(Z)) → U34_GA(X, Z, succ_in_ga(X, Z))
SUCCZ_IN_GA(one(X), zero(Z)) → SUCC_IN_GA(X, Z)
SUCC_IN_GA(zero(X), one(X)) → U31_GA(X, binaryZ_in_a(X))
SUCC_IN_GA(zero(X), one(X)) → BINARYZ_IN_A(X)
SUCC_IN_GA(one(X), zero(Z)) → U32_GA(X, Z, succ_in_ga(X, Z))
SUCC_IN_GA(one(X), zero(Z)) → SUCC_IN_GA(X, Z)
ADDC_IN_AGA(X, Y, Z) → U16_AGA(X, Y, Z, addC_in_aga(X, Y, Z))
ADDC_IN_AGA(X, Y, Z) → ADDC_IN_AGA1(X, Y, Z)
ADDC_IN_AGA1(zero(X), zero(Y), one(Z)) → U23_AGA(X, Y, Z, addz_in_aaa(X, Y, Z))
ADDC_IN_AGA1(zero(X), zero(Y), one(Z)) → ADDZ_IN_AAA(X, Y, Z)
ADDC_IN_AGA1(zero(X), one(Y), zero(Z)) → U24_AGA(X, Y, Z, addX_in_aga(X, Y, Z))
ADDC_IN_AGA1(zero(X), one(Y), zero(Z)) → ADDX_IN_AGA1(X, Y, Z)
ADDX_IN_AGA1(zero(X), b, one(X)) → U17_AGA(X, binaryZ_in_a(X))
ADDX_IN_AGA1(zero(X), b, one(X)) → BINARYZ_IN_A(X)
ADDX_IN_AGA1(one(X), b, zero(Z)) → U18_AGA(X, Z, succ_in_aa(X, Z))
ADDX_IN_AGA1(one(X), b, zero(Z)) → SUCC_IN_AA(X, Z)
ADDX_IN_AGA1(X, Y, Z) → U19_AGA(X, Y, Z, addC_in_aga(X, Y, Z))
ADDX_IN_AGA1(X, Y, Z) → ADDC_IN_AGA1(X, Y, Z)
ADDC_IN_AGA1(one(X), zero(Y), zero(Z)) → U25_AGA(X, Y, Z, addY_in_aaa(X, Y, Z))
ADDC_IN_AGA1(one(X), zero(Y), zero(Z)) → ADDY_IN_AAA1(X, Y, Z)
ADDC_IN_AGA1(one(X), one(Y), one(Z)) → U26_AGA(X, Y, Z, addc_in_aga(X, Y, Z))
ADDC_IN_AGA1(one(X), one(Y), one(Z)) → ADDC_IN_AGA(X, Y, Z)
TIMES_IN_AAG(one(R), S, RSS) → U36_AAG(R, S, RSS, times_in_aaa(R, S, RS))
TIMES_IN_AAG(one(R), S, RSS) → TIMES_IN_AAA(R, S, RS)
U36_AAG(R, S, RSS, times_out_aaa(R, S, RS)) → U37_AAG(R, S, RSS, add_in_agg(S, zero(RS), RSS))
U36_AAG(R, S, RSS, times_out_aaa(R, S, RS)) → ADD_IN_AGG(S, zero(RS), RSS)
ADD_IN_AGG(X, b, X) → U1_AGG(X, binaryZ_in_g(X))
ADD_IN_AGG(X, b, X) → BINARYZ_IN_G(X)
ADD_IN_AGG(b, Y, Y) → U2_AGG(Y, binaryZ_in_g(Y))
ADD_IN_AGG(b, Y, Y) → BINARYZ_IN_G(Y)
ADD_IN_AGG(X, Y, Z) → U3_AGG(X, Y, Z, addz_in_agg(X, Y, Z))
ADD_IN_AGG(X, Y, Z) → ADDZ_IN_AGG(X, Y, Z)
ADDZ_IN_AGG(zero(X), zero(Y), zero(Z)) → U10_AGG(X, Y, Z, addz_in_aaa(X, Y, Z))
ADDZ_IN_AGG(zero(X), zero(Y), zero(Z)) → ADDZ_IN_AAA(X, Y, Z)
ADDZ_IN_AGG(zero(X), one(Y), one(Z)) → U11_AGG(X, Y, Z, addx_in_agg(X, Y, Z))
ADDZ_IN_AGG(zero(X), one(Y), one(Z)) → ADDX_IN_AGG(X, Y, Z)
ADDX_IN_AGG(one(X), b, one(X)) → U4_AGG(X, binary_in_g(X))
ADDX_IN_AGG(one(X), b, one(X)) → BINARY_IN_G(X)
ADDX_IN_AGG(zero(X), b, zero(X)) → U5_AGG(X, binaryZ_in_a(X))
ADDX_IN_AGG(zero(X), b, zero(X)) → BINARYZ_IN_A(X)
ADDX_IN_AGG(X, Y, Z) → U6_AGG(X, Y, Z, addz_in_agg(X, Y, Z))
ADDX_IN_AGG(X, Y, Z) → ADDZ_IN_AGG(X, Y, Z)
ADDZ_IN_AGG(one(X), zero(Y), one(Z)) → U12_AGG(X, Y, Z, addy_in_aag(X, Y, Z))
ADDZ_IN_AGG(one(X), zero(Y), one(Z)) → ADDY_IN_AAG(X, Y, Z)
ADDY_IN_AAG(b, one(Y), one(Y)) → U7_AAG(Y, binary_in_g(Y))
ADDY_IN_AAG(b, one(Y), one(Y)) → BINARY_IN_G(Y)
ADDY_IN_AAG(b, zero(Y), zero(Y)) → U8_AAG(Y, binaryZ_in_a(Y))
ADDY_IN_AAG(b, zero(Y), zero(Y)) → BINARYZ_IN_A(Y)
ADDY_IN_AAG(X, Y, Z) → U9_AAG(X, Y, Z, addz_in_aag(X, Y, Z))
ADDY_IN_AAG(X, Y, Z) → ADDZ_IN_AAG(X, Y, Z)
ADDZ_IN_AAG(zero(X), zero(Y), zero(Z)) → U10_AAG(X, Y, Z, addz_in_aaa(X, Y, Z))
ADDZ_IN_AAG(zero(X), zero(Y), zero(Z)) → ADDZ_IN_AAA(X, Y, Z)
ADDZ_IN_AAG(zero(X), one(Y), one(Z)) → U11_AAG(X, Y, Z, addx_in_aag(X, Y, Z))
ADDZ_IN_AAG(zero(X), one(Y), one(Z)) → ADDX_IN_AAG(X, Y, Z)
ADDX_IN_AAG(one(X), b, one(X)) → U4_AAG(X, binary_in_g(X))
ADDX_IN_AAG(one(X), b, one(X)) → BINARY_IN_G(X)
ADDX_IN_AAG(zero(X), b, zero(X)) → U5_AAG(X, binaryZ_in_a(X))
ADDX_IN_AAG(zero(X), b, zero(X)) → BINARYZ_IN_A(X)
ADDX_IN_AAG(X, Y, Z) → U6_AAG(X, Y, Z, addz_in_aag(X, Y, Z))
ADDX_IN_AAG(X, Y, Z) → ADDZ_IN_AAG(X, Y, Z)
ADDZ_IN_AAG(one(X), zero(Y), one(Z)) → U12_AAG(X, Y, Z, addy_in_aag(X, Y, Z))
ADDZ_IN_AAG(one(X), zero(Y), one(Z)) → ADDY_IN_AAG(X, Y, Z)
ADDZ_IN_AAG(one(X), one(Y), zero(Z)) → U13_AAG(X, Y, Z, addc_in_aaa(X, Y, Z))
ADDZ_IN_AAG(one(X), one(Y), zero(Z)) → ADDC_IN_AAA(X, Y, Z)
ADDZ_IN_AGG(one(X), one(Y), zero(Z)) → U13_AGG(X, Y, Z, addc_in_aga(X, Y, Z))
ADDZ_IN_AGG(one(X), one(Y), zero(Z)) → ADDC_IN_AGA(X, Y, Z)
times_in_aag(one(b), X, X) → times_out_aag(one(b), X, X)
times_in_aag(zero(R), S, zero(RS)) → U35_aag(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(b), X, X) → times_out_aaa(one(b), X, X)
times_in_aaa(zero(R), S, zero(RS)) → U35_aaa(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(R), S, RSS) → U36_aaa(R, S, RSS, times_in_aaa(R, S, RS))
U36_aaa(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aaa(R, S, RSS, add_in_aga(S, zero(RS), RSS))
add_in_aga(b, b, b) → add_out_aga(b, b, b)
add_in_aga(X, b, X) → U1_aga(X, binaryZ_in_a(X))
binaryZ_in_a(zero(X)) → U29_a(X, binaryZ_in_a(X))
binaryZ_in_a(one(X)) → U30_a(X, binary_in_a(X))
binary_in_a(b) → binary_out_a(b)
binary_in_a(zero(X)) → U27_a(X, binaryZ_in_a(X))
U27_a(X, binaryZ_out_a(X)) → binary_out_a(zero(X))
binary_in_a(one(X)) → U28_a(X, binary_in_a(X))
U28_a(X, binary_out_a(X)) → binary_out_a(one(X))
U30_a(X, binary_out_a(X)) → binaryZ_out_a(one(X))
U29_a(X, binaryZ_out_a(X)) → binaryZ_out_a(zero(X))
U1_aga(X, binaryZ_out_a(X)) → add_out_aga(X, b, X)
add_in_aga(b, Y, Y) → U2_aga(Y, binaryZ_in_g(Y))
binaryZ_in_g(zero(X)) → U29_g(X, binaryZ_in_a(X))
U29_g(X, binaryZ_out_a(X)) → binaryZ_out_g(zero(X))
binaryZ_in_g(one(X)) → U30_g(X, binary_in_g(X))
binary_in_g(b) → binary_out_g(b)
binary_in_g(zero(X)) → U27_g(X, binaryZ_in_a(X))
U27_g(X, binaryZ_out_a(X)) → binary_out_g(zero(X))
binary_in_g(one(X)) → U28_g(X, binary_in_g(X))
U28_g(X, binary_out_g(X)) → binary_out_g(one(X))
U30_g(X, binary_out_g(X)) → binaryZ_out_g(one(X))
U2_aga(Y, binaryZ_out_g(Y)) → add_out_aga(b, Y, Y)
add_in_aga(X, Y, Z) → U3_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(zero(X), zero(Y), zero(Z)) → U10_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), zero(Y), zero(Z)) → U10_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), one(Y), one(Z)) → U11_aaa(X, Y, Z, addx_in_aaa(X, Y, Z))
addx_in_aaa(one(X), b, one(X)) → U4_aaa(X, binary_in_a(X))
U4_aaa(X, binary_out_a(X)) → addx_out_aaa(one(X), b, one(X))
addx_in_aaa(zero(X), b, zero(X)) → U5_aaa(X, binaryZ_in_a(X))
U5_aaa(X, binaryZ_out_a(X)) → addx_out_aaa(zero(X), b, zero(X))
addx_in_aaa(X, Y, Z) → U6_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), zero(Y), one(Z)) → U12_aaa(X, Y, Z, addy_in_aaa(X, Y, Z))
addy_in_aaa(b, one(Y), one(Y)) → U7_aaa(Y, binary_in_a(Y))
U7_aaa(Y, binary_out_a(Y)) → addy_out_aaa(b, one(Y), one(Y))
addy_in_aaa(b, zero(Y), zero(Y)) → U8_aaa(Y, binaryZ_in_a(Y))
U8_aaa(Y, binaryZ_out_a(Y)) → addy_out_aaa(b, zero(Y), zero(Y))
addy_in_aaa(X, Y, Z) → U9_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), one(Y), zero(Z)) → U13_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
addc_in_aaa(b, b, one(b)) → addc_out_aaa(b, b, one(b))
addc_in_aaa(X, b, Z) → U14_aaa(X, Z, succZ_in_aa(X, Z))
succZ_in_aa(zero(X), one(X)) → U33_aa(X, binaryZ_in_a(X))
U33_aa(X, binaryZ_out_a(X)) → succZ_out_aa(zero(X), one(X))
succZ_in_aa(one(X), zero(Z)) → U34_aa(X, Z, succ_in_aa(X, Z))
succ_in_aa(b, one(b)) → succ_out_aa(b, one(b))
succ_in_aa(zero(X), one(X)) → U31_aa(X, binaryZ_in_a(X))
U31_aa(X, binaryZ_out_a(X)) → succ_out_aa(zero(X), one(X))
succ_in_aa(one(X), zero(Z)) → U32_aa(X, Z, succ_in_aa(X, Z))
U32_aa(X, Z, succ_out_aa(X, Z)) → succ_out_aa(one(X), zero(Z))
U34_aa(X, Z, succ_out_aa(X, Z)) → succZ_out_aa(one(X), zero(Z))
U14_aaa(X, Z, succZ_out_aa(X, Z)) → addc_out_aaa(X, b, Z)
addc_in_aaa(b, Y, Z) → U15_aaa(Y, Z, succZ_in_aa(Y, Z))
U15_aaa(Y, Z, succZ_out_aa(Y, Z)) → addc_out_aaa(b, Y, Z)
addc_in_aaa(X, Y, Z) → U16_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(zero(X), zero(Y), one(Z)) → U23_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), zero(Y), one(Z))
addC_in_aaa(zero(X), one(Y), zero(Z)) → U24_aaa(X, Y, Z, addX_in_aaa(X, Y, Z))
addX_in_aaa(zero(X), b, one(X)) → U17_aaa(X, binaryZ_in_a(X))
U17_aaa(X, binaryZ_out_a(X)) → addX_out_aaa(zero(X), b, one(X))
addX_in_aaa(one(X), b, zero(Z)) → U18_aaa(X, Z, succ_in_aa(X, Z))
U18_aaa(X, Z, succ_out_aa(X, Z)) → addX_out_aaa(one(X), b, zero(Z))
addX_in_aaa(X, Y, Z) → U19_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), zero(Y), zero(Z)) → U25_aaa(X, Y, Z, addY_in_aaa(X, Y, Z))
addY_in_aaa(b, zero(Y), one(Y)) → U20_aaa(Y, binaryZ_in_a(Y))
U20_aaa(Y, binaryZ_out_a(Y)) → addY_out_aaa(b, zero(Y), one(Y))
addY_in_aaa(b, one(Y), zero(Z)) → U21_aaa(Y, Z, succ_in_aa(Y, Z))
U21_aaa(Y, Z, succ_out_aa(Y, Z)) → addY_out_aaa(b, one(Y), zero(Z))
addY_in_aaa(X, Y, Z) → U22_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), one(Y), one(Z)) → U26_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
U26_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), one(Y), one(Z))
U22_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addY_out_aaa(X, Y, Z)
U25_aaa(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), zero(Y), zero(Z))
U19_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addX_out_aaa(X, Y, Z)
U24_aaa(X, Y, Z, addX_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), one(Y), zero(Z))
U16_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addc_out_aaa(X, Y, Z)
U13_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), one(Y), zero(Z))
U9_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addy_out_aaa(X, Y, Z)
U12_aaa(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), zero(Y), one(Z))
U6_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addx_out_aaa(X, Y, Z)
U11_aaa(X, Y, Z, addx_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), one(Y), one(Z))
U10_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), zero(Y), zero(Z))
U10_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aga(zero(X), zero(Y), zero(Z))
addz_in_aga(zero(X), one(Y), one(Z)) → U11_aga(X, Y, Z, addx_in_aga(X, Y, Z))
addx_in_aga(one(X), b, one(X)) → U4_aga(X, binary_in_a(X))
U4_aga(X, binary_out_a(X)) → addx_out_aga(one(X), b, one(X))
addx_in_aga(zero(X), b, zero(X)) → U5_aga(X, binaryZ_in_a(X))
U5_aga(X, binaryZ_out_a(X)) → addx_out_aga(zero(X), b, zero(X))
addx_in_aga(X, Y, Z) → U6_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(one(X), zero(Y), one(Z)) → U12_aga(X, Y, Z, addy_in_aaa(X, Y, Z))
U12_aga(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aga(one(X), zero(Y), one(Z))
addz_in_aga(one(X), one(Y), zero(Z)) → U13_aga(X, Y, Z, addc_in_aga(X, Y, Z))
addc_in_aga(b, b, one(b)) → addc_out_aga(b, b, one(b))
addc_in_aga(X, b, Z) → U14_aga(X, Z, succZ_in_aa(X, Z))
U14_aga(X, Z, succZ_out_aa(X, Z)) → addc_out_aga(X, b, Z)
addc_in_aga(b, Y, Z) → U15_aga(Y, Z, succZ_in_ga(Y, Z))
succZ_in_ga(zero(X), one(X)) → U33_ga(X, binaryZ_in_a(X))
U33_ga(X, binaryZ_out_a(X)) → succZ_out_ga(zero(X), one(X))
succZ_in_ga(one(X), zero(Z)) → U34_ga(X, Z, succ_in_ga(X, Z))
succ_in_ga(b, one(b)) → succ_out_ga(b, one(b))
succ_in_ga(zero(X), one(X)) → U31_ga(X, binaryZ_in_a(X))
U31_ga(X, binaryZ_out_a(X)) → succ_out_ga(zero(X), one(X))
succ_in_ga(one(X), zero(Z)) → U32_ga(X, Z, succ_in_ga(X, Z))
U32_ga(X, Z, succ_out_ga(X, Z)) → succ_out_ga(one(X), zero(Z))
U34_ga(X, Z, succ_out_ga(X, Z)) → succZ_out_ga(one(X), zero(Z))
U15_aga(Y, Z, succZ_out_ga(Y, Z)) → addc_out_aga(b, Y, Z)
addc_in_aga(X, Y, Z) → U16_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(zero(X), zero(Y), one(Z)) → U23_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aga(zero(X), zero(Y), one(Z))
addC_in_aga(zero(X), one(Y), zero(Z)) → U24_aga(X, Y, Z, addX_in_aga(X, Y, Z))
addX_in_aga(zero(X), b, one(X)) → U17_aga(X, binaryZ_in_a(X))
U17_aga(X, binaryZ_out_a(X)) → addX_out_aga(zero(X), b, one(X))
addX_in_aga(one(X), b, zero(Z)) → U18_aga(X, Z, succ_in_aa(X, Z))
U18_aga(X, Z, succ_out_aa(X, Z)) → addX_out_aga(one(X), b, zero(Z))
addX_in_aga(X, Y, Z) → U19_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(one(X), zero(Y), zero(Z)) → U25_aga(X, Y, Z, addY_in_aaa(X, Y, Z))
U25_aga(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aga(one(X), zero(Y), zero(Z))
addC_in_aga(one(X), one(Y), one(Z)) → U26_aga(X, Y, Z, addc_in_aga(X, Y, Z))
U26_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addC_out_aga(one(X), one(Y), one(Z))
U19_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addX_out_aga(X, Y, Z)
U24_aga(X, Y, Z, addX_out_aga(X, Y, Z)) → addC_out_aga(zero(X), one(Y), zero(Z))
U16_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addc_out_aga(X, Y, Z)
U13_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_aga(one(X), one(Y), zero(Z))
U6_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → addx_out_aga(X, Y, Z)
U11_aga(X, Y, Z, addx_out_aga(X, Y, Z)) → addz_out_aga(zero(X), one(Y), one(Z))
U3_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → add_out_aga(X, Y, Z)
U37_aaa(R, S, RSS, add_out_aga(S, zero(RS), RSS)) → times_out_aaa(one(R), S, RSS)
U35_aaa(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aaa(zero(R), S, zero(RS))
U35_aag(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aag(zero(R), S, zero(RS))
times_in_aag(one(R), S, RSS) → U36_aag(R, S, RSS, times_in_aaa(R, S, RS))
U36_aag(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aag(R, S, RSS, add_in_agg(S, zero(RS), RSS))
add_in_agg(b, b, b) → add_out_agg(b, b, b)
add_in_agg(X, b, X) → U1_agg(X, binaryZ_in_g(X))
U1_agg(X, binaryZ_out_g(X)) → add_out_agg(X, b, X)
add_in_agg(b, Y, Y) → U2_agg(Y, binaryZ_in_g(Y))
U2_agg(Y, binaryZ_out_g(Y)) → add_out_agg(b, Y, Y)
add_in_agg(X, Y, Z) → U3_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(zero(X), zero(Y), zero(Z)) → U10_agg(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_agg(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_agg(zero(X), zero(Y), zero(Z))
addz_in_agg(zero(X), one(Y), one(Z)) → U11_agg(X, Y, Z, addx_in_agg(X, Y, Z))
addx_in_agg(one(X), b, one(X)) → U4_agg(X, binary_in_g(X))
U4_agg(X, binary_out_g(X)) → addx_out_agg(one(X), b, one(X))
addx_in_agg(zero(X), b, zero(X)) → U5_agg(X, binaryZ_in_a(X))
U5_agg(X, binaryZ_out_a(X)) → addx_out_agg(zero(X), b, zero(X))
addx_in_agg(X, Y, Z) → U6_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(one(X), zero(Y), one(Z)) → U12_agg(X, Y, Z, addy_in_aag(X, Y, Z))
addy_in_aag(b, one(Y), one(Y)) → U7_aag(Y, binary_in_g(Y))
U7_aag(Y, binary_out_g(Y)) → addy_out_aag(b, one(Y), one(Y))
addy_in_aag(b, zero(Y), zero(Y)) → U8_aag(Y, binaryZ_in_a(Y))
U8_aag(Y, binaryZ_out_a(Y)) → addy_out_aag(b, zero(Y), zero(Y))
addy_in_aag(X, Y, Z) → U9_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(zero(X), zero(Y), zero(Z)) → U10_aag(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_aag(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aag(zero(X), zero(Y), zero(Z))
addz_in_aag(zero(X), one(Y), one(Z)) → U11_aag(X, Y, Z, addx_in_aag(X, Y, Z))
addx_in_aag(one(X), b, one(X)) → U4_aag(X, binary_in_g(X))
U4_aag(X, binary_out_g(X)) → addx_out_aag(one(X), b, one(X))
addx_in_aag(zero(X), b, zero(X)) → U5_aag(X, binaryZ_in_a(X))
U5_aag(X, binaryZ_out_a(X)) → addx_out_aag(zero(X), b, zero(X))
addx_in_aag(X, Y, Z) → U6_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(one(X), zero(Y), one(Z)) → U12_aag(X, Y, Z, addy_in_aag(X, Y, Z))
U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_aag(one(X), zero(Y), one(Z))
addz_in_aag(one(X), one(Y), zero(Z)) → U13_aag(X, Y, Z, addc_in_aaa(X, Y, Z))
U13_aag(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aag(one(X), one(Y), zero(Z))
U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addx_out_aag(X, Y, Z)
U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) → addz_out_aag(zero(X), one(Y), one(Z))
U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addy_out_aag(X, Y, Z)
U12_agg(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_agg(one(X), zero(Y), one(Z))
addz_in_agg(one(X), one(Y), zero(Z)) → U13_agg(X, Y, Z, addc_in_aga(X, Y, Z))
U13_agg(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_agg(one(X), one(Y), zero(Z))
U6_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → addx_out_agg(X, Y, Z)
U11_agg(X, Y, Z, addx_out_agg(X, Y, Z)) → addz_out_agg(zero(X), one(Y), one(Z))
U3_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → add_out_agg(X, Y, Z)
U37_aag(R, S, RSS, add_out_agg(S, zero(RS), RSS)) → times_out_aag(one(R), S, RSS)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
TIMES_IN_AAG(zero(R), S, zero(RS)) → U35_AAG(R, S, RS, times_in_aaa(R, S, RS))
TIMES_IN_AAG(zero(R), S, zero(RS)) → TIMES_IN_AAA(R, S, RS)
TIMES_IN_AAA(zero(R), S, zero(RS)) → U35_AAA(R, S, RS, times_in_aaa(R, S, RS))
TIMES_IN_AAA(zero(R), S, zero(RS)) → TIMES_IN_AAA(R, S, RS)
TIMES_IN_AAA(one(R), S, RSS) → U36_AAA(R, S, RSS, times_in_aaa(R, S, RS))
TIMES_IN_AAA(one(R), S, RSS) → TIMES_IN_AAA(R, S, RS)
U36_AAA(R, S, RSS, times_out_aaa(R, S, RS)) → U37_AAA(R, S, RSS, add_in_aga(S, zero(RS), RSS))
U36_AAA(R, S, RSS, times_out_aaa(R, S, RS)) → ADD_IN_AGA(S, zero(RS), RSS)
ADD_IN_AGA(X, b, X) → U1_AGA(X, binaryZ_in_a(X))
ADD_IN_AGA(X, b, X) → BINARYZ_IN_A(X)
BINARYZ_IN_A(zero(X)) → U29_A(X, binaryZ_in_a(X))
BINARYZ_IN_A(zero(X)) → BINARYZ_IN_A(X)
BINARYZ_IN_A(one(X)) → U30_A(X, binary_in_a(X))
BINARYZ_IN_A(one(X)) → BINARY_IN_A(X)
BINARY_IN_A(zero(X)) → U27_A(X, binaryZ_in_a(X))
BINARY_IN_A(zero(X)) → BINARYZ_IN_A(X)
BINARY_IN_A(one(X)) → U28_A(X, binary_in_a(X))
BINARY_IN_A(one(X)) → BINARY_IN_A(X)
ADD_IN_AGA(b, Y, Y) → U2_AGA(Y, binaryZ_in_g(Y))
ADD_IN_AGA(b, Y, Y) → BINARYZ_IN_G(Y)
BINARYZ_IN_G(zero(X)) → U29_G(X, binaryZ_in_a(X))
BINARYZ_IN_G(zero(X)) → BINARYZ_IN_A(X)
BINARYZ_IN_G(one(X)) → U30_G(X, binary_in_g(X))
BINARYZ_IN_G(one(X)) → BINARY_IN_G(X)
BINARY_IN_G(zero(X)) → U27_G(X, binaryZ_in_a(X))
BINARY_IN_G(zero(X)) → BINARYZ_IN_A(X)
BINARY_IN_G(one(X)) → U28_G(X, binary_in_g(X))
BINARY_IN_G(one(X)) → BINARY_IN_G(X)
ADD_IN_AGA(X, Y, Z) → U3_AGA(X, Y, Z, addz_in_aga(X, Y, Z))
ADD_IN_AGA(X, Y, Z) → ADDZ_IN_AGA(X, Y, Z)
ADDZ_IN_AGA(zero(X), zero(Y), zero(Z)) → U10_AGA(X, Y, Z, addz_in_aaa(X, Y, Z))
ADDZ_IN_AGA(zero(X), zero(Y), zero(Z)) → ADDZ_IN_AAA(X, Y, Z)
ADDZ_IN_AAA(zero(X), zero(Y), zero(Z)) → U10_AAA(X, Y, Z, addz_in_aaa(X, Y, Z))
ADDZ_IN_AAA(zero(X), zero(Y), zero(Z)) → ADDZ_IN_AAA(X, Y, Z)
ADDZ_IN_AAA(zero(X), one(Y), one(Z)) → U11_AAA(X, Y, Z, addx_in_aaa(X, Y, Z))
ADDZ_IN_AAA(zero(X), one(Y), one(Z)) → ADDX_IN_AAA(X, Y, Z)
ADDX_IN_AAA(one(X), b, one(X)) → U4_AAA(X, binary_in_a(X))
ADDX_IN_AAA(one(X), b, one(X)) → BINARY_IN_A(X)
ADDX_IN_AAA(zero(X), b, zero(X)) → U5_AAA(X, binaryZ_in_a(X))
ADDX_IN_AAA(zero(X), b, zero(X)) → BINARYZ_IN_A(X)
ADDX_IN_AAA(X, Y, Z) → U6_AAA(X, Y, Z, addz_in_aaa(X, Y, Z))
ADDX_IN_AAA(X, Y, Z) → ADDZ_IN_AAA(X, Y, Z)
ADDZ_IN_AAA(one(X), zero(Y), one(Z)) → U12_AAA(X, Y, Z, addy_in_aaa(X, Y, Z))
ADDZ_IN_AAA(one(X), zero(Y), one(Z)) → ADDY_IN_AAA(X, Y, Z)
ADDY_IN_AAA(b, one(Y), one(Y)) → U7_AAA(Y, binary_in_a(Y))
ADDY_IN_AAA(b, one(Y), one(Y)) → BINARY_IN_A(Y)
ADDY_IN_AAA(b, zero(Y), zero(Y)) → U8_AAA(Y, binaryZ_in_a(Y))
ADDY_IN_AAA(b, zero(Y), zero(Y)) → BINARYZ_IN_A(Y)
ADDY_IN_AAA(X, Y, Z) → U9_AAA(X, Y, Z, addz_in_aaa(X, Y, Z))
ADDY_IN_AAA(X, Y, Z) → ADDZ_IN_AAA(X, Y, Z)
ADDZ_IN_AAA(one(X), one(Y), zero(Z)) → U13_AAA(X, Y, Z, addc_in_aaa(X, Y, Z))
ADDZ_IN_AAA(one(X), one(Y), zero(Z)) → ADDC_IN_AAA(X, Y, Z)
ADDC_IN_AAA(X, b, Z) → U14_AAA(X, Z, succZ_in_aa(X, Z))
ADDC_IN_AAA(X, b, Z) → SUCCZ_IN_AA(X, Z)
SUCCZ_IN_AA(zero(X), one(X)) → U33_AA(X, binaryZ_in_a(X))
SUCCZ_IN_AA(zero(X), one(X)) → BINARYZ_IN_A(X)
SUCCZ_IN_AA(one(X), zero(Z)) → U34_AA(X, Z, succ_in_aa(X, Z))
SUCCZ_IN_AA(one(X), zero(Z)) → SUCC_IN_AA(X, Z)
SUCC_IN_AA(zero(X), one(X)) → U31_AA(X, binaryZ_in_a(X))
SUCC_IN_AA(zero(X), one(X)) → BINARYZ_IN_A(X)
SUCC_IN_AA(one(X), zero(Z)) → U32_AA(X, Z, succ_in_aa(X, Z))
SUCC_IN_AA(one(X), zero(Z)) → SUCC_IN_AA(X, Z)
ADDC_IN_AAA(b, Y, Z) → U15_AAA(Y, Z, succZ_in_aa(Y, Z))
ADDC_IN_AAA(b, Y, Z) → SUCCZ_IN_AA(Y, Z)
ADDC_IN_AAA(X, Y, Z) → U16_AAA(X, Y, Z, addC_in_aaa(X, Y, Z))
ADDC_IN_AAA(X, Y, Z) → ADDC_IN_AAA1(X, Y, Z)
ADDC_IN_AAA1(zero(X), zero(Y), one(Z)) → U23_AAA(X, Y, Z, addz_in_aaa(X, Y, Z))
ADDC_IN_AAA1(zero(X), zero(Y), one(Z)) → ADDZ_IN_AAA(X, Y, Z)
ADDC_IN_AAA1(zero(X), one(Y), zero(Z)) → U24_AAA(X, Y, Z, addX_in_aaa(X, Y, Z))
ADDC_IN_AAA1(zero(X), one(Y), zero(Z)) → ADDX_IN_AAA1(X, Y, Z)
ADDX_IN_AAA1(zero(X), b, one(X)) → U17_AAA(X, binaryZ_in_a(X))
ADDX_IN_AAA1(zero(X), b, one(X)) → BINARYZ_IN_A(X)
ADDX_IN_AAA1(one(X), b, zero(Z)) → U18_AAA(X, Z, succ_in_aa(X, Z))
ADDX_IN_AAA1(one(X), b, zero(Z)) → SUCC_IN_AA(X, Z)
ADDX_IN_AAA1(X, Y, Z) → U19_AAA(X, Y, Z, addC_in_aaa(X, Y, Z))
ADDX_IN_AAA1(X, Y, Z) → ADDC_IN_AAA1(X, Y, Z)
ADDC_IN_AAA1(one(X), zero(Y), zero(Z)) → U25_AAA(X, Y, Z, addY_in_aaa(X, Y, Z))
ADDC_IN_AAA1(one(X), zero(Y), zero(Z)) → ADDY_IN_AAA1(X, Y, Z)
ADDY_IN_AAA1(b, zero(Y), one(Y)) → U20_AAA(Y, binaryZ_in_a(Y))
ADDY_IN_AAA1(b, zero(Y), one(Y)) → BINARYZ_IN_A(Y)
ADDY_IN_AAA1(b, one(Y), zero(Z)) → U21_AAA(Y, Z, succ_in_aa(Y, Z))
ADDY_IN_AAA1(b, one(Y), zero(Z)) → SUCC_IN_AA(Y, Z)
ADDY_IN_AAA1(X, Y, Z) → U22_AAA(X, Y, Z, addC_in_aaa(X, Y, Z))
ADDY_IN_AAA1(X, Y, Z) → ADDC_IN_AAA1(X, Y, Z)
ADDC_IN_AAA1(one(X), one(Y), one(Z)) → U26_AAA(X, Y, Z, addc_in_aaa(X, Y, Z))
ADDC_IN_AAA1(one(X), one(Y), one(Z)) → ADDC_IN_AAA(X, Y, Z)
ADDZ_IN_AGA(zero(X), one(Y), one(Z)) → U11_AGA(X, Y, Z, addx_in_aga(X, Y, Z))
ADDZ_IN_AGA(zero(X), one(Y), one(Z)) → ADDX_IN_AGA(X, Y, Z)
ADDX_IN_AGA(one(X), b, one(X)) → U4_AGA(X, binary_in_a(X))
ADDX_IN_AGA(one(X), b, one(X)) → BINARY_IN_A(X)
ADDX_IN_AGA(zero(X), b, zero(X)) → U5_AGA(X, binaryZ_in_a(X))
ADDX_IN_AGA(zero(X), b, zero(X)) → BINARYZ_IN_A(X)
ADDX_IN_AGA(X, Y, Z) → U6_AGA(X, Y, Z, addz_in_aga(X, Y, Z))
ADDX_IN_AGA(X, Y, Z) → ADDZ_IN_AGA(X, Y, Z)
ADDZ_IN_AGA(one(X), zero(Y), one(Z)) → U12_AGA(X, Y, Z, addy_in_aaa(X, Y, Z))
ADDZ_IN_AGA(one(X), zero(Y), one(Z)) → ADDY_IN_AAA(X, Y, Z)
ADDZ_IN_AGA(one(X), one(Y), zero(Z)) → U13_AGA(X, Y, Z, addc_in_aga(X, Y, Z))
ADDZ_IN_AGA(one(X), one(Y), zero(Z)) → ADDC_IN_AGA(X, Y, Z)
ADDC_IN_AGA(X, b, Z) → U14_AGA(X, Z, succZ_in_aa(X, Z))
ADDC_IN_AGA(X, b, Z) → SUCCZ_IN_AA(X, Z)
ADDC_IN_AGA(b, Y, Z) → U15_AGA(Y, Z, succZ_in_ga(Y, Z))
ADDC_IN_AGA(b, Y, Z) → SUCCZ_IN_GA(Y, Z)
SUCCZ_IN_GA(zero(X), one(X)) → U33_GA(X, binaryZ_in_a(X))
SUCCZ_IN_GA(zero(X), one(X)) → BINARYZ_IN_A(X)
SUCCZ_IN_GA(one(X), zero(Z)) → U34_GA(X, Z, succ_in_ga(X, Z))
SUCCZ_IN_GA(one(X), zero(Z)) → SUCC_IN_GA(X, Z)
SUCC_IN_GA(zero(X), one(X)) → U31_GA(X, binaryZ_in_a(X))
SUCC_IN_GA(zero(X), one(X)) → BINARYZ_IN_A(X)
SUCC_IN_GA(one(X), zero(Z)) → U32_GA(X, Z, succ_in_ga(X, Z))
SUCC_IN_GA(one(X), zero(Z)) → SUCC_IN_GA(X, Z)
ADDC_IN_AGA(X, Y, Z) → U16_AGA(X, Y, Z, addC_in_aga(X, Y, Z))
ADDC_IN_AGA(X, Y, Z) → ADDC_IN_AGA1(X, Y, Z)
ADDC_IN_AGA1(zero(X), zero(Y), one(Z)) → U23_AGA(X, Y, Z, addz_in_aaa(X, Y, Z))
ADDC_IN_AGA1(zero(X), zero(Y), one(Z)) → ADDZ_IN_AAA(X, Y, Z)
ADDC_IN_AGA1(zero(X), one(Y), zero(Z)) → U24_AGA(X, Y, Z, addX_in_aga(X, Y, Z))
ADDC_IN_AGA1(zero(X), one(Y), zero(Z)) → ADDX_IN_AGA1(X, Y, Z)
ADDX_IN_AGA1(zero(X), b, one(X)) → U17_AGA(X, binaryZ_in_a(X))
ADDX_IN_AGA1(zero(X), b, one(X)) → BINARYZ_IN_A(X)
ADDX_IN_AGA1(one(X), b, zero(Z)) → U18_AGA(X, Z, succ_in_aa(X, Z))
ADDX_IN_AGA1(one(X), b, zero(Z)) → SUCC_IN_AA(X, Z)
ADDX_IN_AGA1(X, Y, Z) → U19_AGA(X, Y, Z, addC_in_aga(X, Y, Z))
ADDX_IN_AGA1(X, Y, Z) → ADDC_IN_AGA1(X, Y, Z)
ADDC_IN_AGA1(one(X), zero(Y), zero(Z)) → U25_AGA(X, Y, Z, addY_in_aaa(X, Y, Z))
ADDC_IN_AGA1(one(X), zero(Y), zero(Z)) → ADDY_IN_AAA1(X, Y, Z)
ADDC_IN_AGA1(one(X), one(Y), one(Z)) → U26_AGA(X, Y, Z, addc_in_aga(X, Y, Z))
ADDC_IN_AGA1(one(X), one(Y), one(Z)) → ADDC_IN_AGA(X, Y, Z)
TIMES_IN_AAG(one(R), S, RSS) → U36_AAG(R, S, RSS, times_in_aaa(R, S, RS))
TIMES_IN_AAG(one(R), S, RSS) → TIMES_IN_AAA(R, S, RS)
U36_AAG(R, S, RSS, times_out_aaa(R, S, RS)) → U37_AAG(R, S, RSS, add_in_agg(S, zero(RS), RSS))
U36_AAG(R, S, RSS, times_out_aaa(R, S, RS)) → ADD_IN_AGG(S, zero(RS), RSS)
ADD_IN_AGG(X, b, X) → U1_AGG(X, binaryZ_in_g(X))
ADD_IN_AGG(X, b, X) → BINARYZ_IN_G(X)
ADD_IN_AGG(b, Y, Y) → U2_AGG(Y, binaryZ_in_g(Y))
ADD_IN_AGG(b, Y, Y) → BINARYZ_IN_G(Y)
ADD_IN_AGG(X, Y, Z) → U3_AGG(X, Y, Z, addz_in_agg(X, Y, Z))
ADD_IN_AGG(X, Y, Z) → ADDZ_IN_AGG(X, Y, Z)
ADDZ_IN_AGG(zero(X), zero(Y), zero(Z)) → U10_AGG(X, Y, Z, addz_in_aaa(X, Y, Z))
ADDZ_IN_AGG(zero(X), zero(Y), zero(Z)) → ADDZ_IN_AAA(X, Y, Z)
ADDZ_IN_AGG(zero(X), one(Y), one(Z)) → U11_AGG(X, Y, Z, addx_in_agg(X, Y, Z))
ADDZ_IN_AGG(zero(X), one(Y), one(Z)) → ADDX_IN_AGG(X, Y, Z)
ADDX_IN_AGG(one(X), b, one(X)) → U4_AGG(X, binary_in_g(X))
ADDX_IN_AGG(one(X), b, one(X)) → BINARY_IN_G(X)
ADDX_IN_AGG(zero(X), b, zero(X)) → U5_AGG(X, binaryZ_in_a(X))
ADDX_IN_AGG(zero(X), b, zero(X)) → BINARYZ_IN_A(X)
ADDX_IN_AGG(X, Y, Z) → U6_AGG(X, Y, Z, addz_in_agg(X, Y, Z))
ADDX_IN_AGG(X, Y, Z) → ADDZ_IN_AGG(X, Y, Z)
ADDZ_IN_AGG(one(X), zero(Y), one(Z)) → U12_AGG(X, Y, Z, addy_in_aag(X, Y, Z))
ADDZ_IN_AGG(one(X), zero(Y), one(Z)) → ADDY_IN_AAG(X, Y, Z)
ADDY_IN_AAG(b, one(Y), one(Y)) → U7_AAG(Y, binary_in_g(Y))
ADDY_IN_AAG(b, one(Y), one(Y)) → BINARY_IN_G(Y)
ADDY_IN_AAG(b, zero(Y), zero(Y)) → U8_AAG(Y, binaryZ_in_a(Y))
ADDY_IN_AAG(b, zero(Y), zero(Y)) → BINARYZ_IN_A(Y)
ADDY_IN_AAG(X, Y, Z) → U9_AAG(X, Y, Z, addz_in_aag(X, Y, Z))
ADDY_IN_AAG(X, Y, Z) → ADDZ_IN_AAG(X, Y, Z)
ADDZ_IN_AAG(zero(X), zero(Y), zero(Z)) → U10_AAG(X, Y, Z, addz_in_aaa(X, Y, Z))
ADDZ_IN_AAG(zero(X), zero(Y), zero(Z)) → ADDZ_IN_AAA(X, Y, Z)
ADDZ_IN_AAG(zero(X), one(Y), one(Z)) → U11_AAG(X, Y, Z, addx_in_aag(X, Y, Z))
ADDZ_IN_AAG(zero(X), one(Y), one(Z)) → ADDX_IN_AAG(X, Y, Z)
ADDX_IN_AAG(one(X), b, one(X)) → U4_AAG(X, binary_in_g(X))
ADDX_IN_AAG(one(X), b, one(X)) → BINARY_IN_G(X)
ADDX_IN_AAG(zero(X), b, zero(X)) → U5_AAG(X, binaryZ_in_a(X))
ADDX_IN_AAG(zero(X), b, zero(X)) → BINARYZ_IN_A(X)
ADDX_IN_AAG(X, Y, Z) → U6_AAG(X, Y, Z, addz_in_aag(X, Y, Z))
ADDX_IN_AAG(X, Y, Z) → ADDZ_IN_AAG(X, Y, Z)
ADDZ_IN_AAG(one(X), zero(Y), one(Z)) → U12_AAG(X, Y, Z, addy_in_aag(X, Y, Z))
ADDZ_IN_AAG(one(X), zero(Y), one(Z)) → ADDY_IN_AAG(X, Y, Z)
ADDZ_IN_AAG(one(X), one(Y), zero(Z)) → U13_AAG(X, Y, Z, addc_in_aaa(X, Y, Z))
ADDZ_IN_AAG(one(X), one(Y), zero(Z)) → ADDC_IN_AAA(X, Y, Z)
ADDZ_IN_AGG(one(X), one(Y), zero(Z)) → U13_AGG(X, Y, Z, addc_in_aga(X, Y, Z))
ADDZ_IN_AGG(one(X), one(Y), zero(Z)) → ADDC_IN_AGA(X, Y, Z)
times_in_aag(one(b), X, X) → times_out_aag(one(b), X, X)
times_in_aag(zero(R), S, zero(RS)) → U35_aag(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(b), X, X) → times_out_aaa(one(b), X, X)
times_in_aaa(zero(R), S, zero(RS)) → U35_aaa(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(R), S, RSS) → U36_aaa(R, S, RSS, times_in_aaa(R, S, RS))
U36_aaa(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aaa(R, S, RSS, add_in_aga(S, zero(RS), RSS))
add_in_aga(b, b, b) → add_out_aga(b, b, b)
add_in_aga(X, b, X) → U1_aga(X, binaryZ_in_a(X))
binaryZ_in_a(zero(X)) → U29_a(X, binaryZ_in_a(X))
binaryZ_in_a(one(X)) → U30_a(X, binary_in_a(X))
binary_in_a(b) → binary_out_a(b)
binary_in_a(zero(X)) → U27_a(X, binaryZ_in_a(X))
U27_a(X, binaryZ_out_a(X)) → binary_out_a(zero(X))
binary_in_a(one(X)) → U28_a(X, binary_in_a(X))
U28_a(X, binary_out_a(X)) → binary_out_a(one(X))
U30_a(X, binary_out_a(X)) → binaryZ_out_a(one(X))
U29_a(X, binaryZ_out_a(X)) → binaryZ_out_a(zero(X))
U1_aga(X, binaryZ_out_a(X)) → add_out_aga(X, b, X)
add_in_aga(b, Y, Y) → U2_aga(Y, binaryZ_in_g(Y))
binaryZ_in_g(zero(X)) → U29_g(X, binaryZ_in_a(X))
U29_g(X, binaryZ_out_a(X)) → binaryZ_out_g(zero(X))
binaryZ_in_g(one(X)) → U30_g(X, binary_in_g(X))
binary_in_g(b) → binary_out_g(b)
binary_in_g(zero(X)) → U27_g(X, binaryZ_in_a(X))
U27_g(X, binaryZ_out_a(X)) → binary_out_g(zero(X))
binary_in_g(one(X)) → U28_g(X, binary_in_g(X))
U28_g(X, binary_out_g(X)) → binary_out_g(one(X))
U30_g(X, binary_out_g(X)) → binaryZ_out_g(one(X))
U2_aga(Y, binaryZ_out_g(Y)) → add_out_aga(b, Y, Y)
add_in_aga(X, Y, Z) → U3_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(zero(X), zero(Y), zero(Z)) → U10_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), zero(Y), zero(Z)) → U10_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), one(Y), one(Z)) → U11_aaa(X, Y, Z, addx_in_aaa(X, Y, Z))
addx_in_aaa(one(X), b, one(X)) → U4_aaa(X, binary_in_a(X))
U4_aaa(X, binary_out_a(X)) → addx_out_aaa(one(X), b, one(X))
addx_in_aaa(zero(X), b, zero(X)) → U5_aaa(X, binaryZ_in_a(X))
U5_aaa(X, binaryZ_out_a(X)) → addx_out_aaa(zero(X), b, zero(X))
addx_in_aaa(X, Y, Z) → U6_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), zero(Y), one(Z)) → U12_aaa(X, Y, Z, addy_in_aaa(X, Y, Z))
addy_in_aaa(b, one(Y), one(Y)) → U7_aaa(Y, binary_in_a(Y))
U7_aaa(Y, binary_out_a(Y)) → addy_out_aaa(b, one(Y), one(Y))
addy_in_aaa(b, zero(Y), zero(Y)) → U8_aaa(Y, binaryZ_in_a(Y))
U8_aaa(Y, binaryZ_out_a(Y)) → addy_out_aaa(b, zero(Y), zero(Y))
addy_in_aaa(X, Y, Z) → U9_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), one(Y), zero(Z)) → U13_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
addc_in_aaa(b, b, one(b)) → addc_out_aaa(b, b, one(b))
addc_in_aaa(X, b, Z) → U14_aaa(X, Z, succZ_in_aa(X, Z))
succZ_in_aa(zero(X), one(X)) → U33_aa(X, binaryZ_in_a(X))
U33_aa(X, binaryZ_out_a(X)) → succZ_out_aa(zero(X), one(X))
succZ_in_aa(one(X), zero(Z)) → U34_aa(X, Z, succ_in_aa(X, Z))
succ_in_aa(b, one(b)) → succ_out_aa(b, one(b))
succ_in_aa(zero(X), one(X)) → U31_aa(X, binaryZ_in_a(X))
U31_aa(X, binaryZ_out_a(X)) → succ_out_aa(zero(X), one(X))
succ_in_aa(one(X), zero(Z)) → U32_aa(X, Z, succ_in_aa(X, Z))
U32_aa(X, Z, succ_out_aa(X, Z)) → succ_out_aa(one(X), zero(Z))
U34_aa(X, Z, succ_out_aa(X, Z)) → succZ_out_aa(one(X), zero(Z))
U14_aaa(X, Z, succZ_out_aa(X, Z)) → addc_out_aaa(X, b, Z)
addc_in_aaa(b, Y, Z) → U15_aaa(Y, Z, succZ_in_aa(Y, Z))
U15_aaa(Y, Z, succZ_out_aa(Y, Z)) → addc_out_aaa(b, Y, Z)
addc_in_aaa(X, Y, Z) → U16_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(zero(X), zero(Y), one(Z)) → U23_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), zero(Y), one(Z))
addC_in_aaa(zero(X), one(Y), zero(Z)) → U24_aaa(X, Y, Z, addX_in_aaa(X, Y, Z))
addX_in_aaa(zero(X), b, one(X)) → U17_aaa(X, binaryZ_in_a(X))
U17_aaa(X, binaryZ_out_a(X)) → addX_out_aaa(zero(X), b, one(X))
addX_in_aaa(one(X), b, zero(Z)) → U18_aaa(X, Z, succ_in_aa(X, Z))
U18_aaa(X, Z, succ_out_aa(X, Z)) → addX_out_aaa(one(X), b, zero(Z))
addX_in_aaa(X, Y, Z) → U19_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), zero(Y), zero(Z)) → U25_aaa(X, Y, Z, addY_in_aaa(X, Y, Z))
addY_in_aaa(b, zero(Y), one(Y)) → U20_aaa(Y, binaryZ_in_a(Y))
U20_aaa(Y, binaryZ_out_a(Y)) → addY_out_aaa(b, zero(Y), one(Y))
addY_in_aaa(b, one(Y), zero(Z)) → U21_aaa(Y, Z, succ_in_aa(Y, Z))
U21_aaa(Y, Z, succ_out_aa(Y, Z)) → addY_out_aaa(b, one(Y), zero(Z))
addY_in_aaa(X, Y, Z) → U22_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), one(Y), one(Z)) → U26_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
U26_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), one(Y), one(Z))
U22_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addY_out_aaa(X, Y, Z)
U25_aaa(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), zero(Y), zero(Z))
U19_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addX_out_aaa(X, Y, Z)
U24_aaa(X, Y, Z, addX_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), one(Y), zero(Z))
U16_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addc_out_aaa(X, Y, Z)
U13_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), one(Y), zero(Z))
U9_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addy_out_aaa(X, Y, Z)
U12_aaa(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), zero(Y), one(Z))
U6_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addx_out_aaa(X, Y, Z)
U11_aaa(X, Y, Z, addx_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), one(Y), one(Z))
U10_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), zero(Y), zero(Z))
U10_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aga(zero(X), zero(Y), zero(Z))
addz_in_aga(zero(X), one(Y), one(Z)) → U11_aga(X, Y, Z, addx_in_aga(X, Y, Z))
addx_in_aga(one(X), b, one(X)) → U4_aga(X, binary_in_a(X))
U4_aga(X, binary_out_a(X)) → addx_out_aga(one(X), b, one(X))
addx_in_aga(zero(X), b, zero(X)) → U5_aga(X, binaryZ_in_a(X))
U5_aga(X, binaryZ_out_a(X)) → addx_out_aga(zero(X), b, zero(X))
addx_in_aga(X, Y, Z) → U6_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(one(X), zero(Y), one(Z)) → U12_aga(X, Y, Z, addy_in_aaa(X, Y, Z))
U12_aga(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aga(one(X), zero(Y), one(Z))
addz_in_aga(one(X), one(Y), zero(Z)) → U13_aga(X, Y, Z, addc_in_aga(X, Y, Z))
addc_in_aga(b, b, one(b)) → addc_out_aga(b, b, one(b))
addc_in_aga(X, b, Z) → U14_aga(X, Z, succZ_in_aa(X, Z))
U14_aga(X, Z, succZ_out_aa(X, Z)) → addc_out_aga(X, b, Z)
addc_in_aga(b, Y, Z) → U15_aga(Y, Z, succZ_in_ga(Y, Z))
succZ_in_ga(zero(X), one(X)) → U33_ga(X, binaryZ_in_a(X))
U33_ga(X, binaryZ_out_a(X)) → succZ_out_ga(zero(X), one(X))
succZ_in_ga(one(X), zero(Z)) → U34_ga(X, Z, succ_in_ga(X, Z))
succ_in_ga(b, one(b)) → succ_out_ga(b, one(b))
succ_in_ga(zero(X), one(X)) → U31_ga(X, binaryZ_in_a(X))
U31_ga(X, binaryZ_out_a(X)) → succ_out_ga(zero(X), one(X))
succ_in_ga(one(X), zero(Z)) → U32_ga(X, Z, succ_in_ga(X, Z))
U32_ga(X, Z, succ_out_ga(X, Z)) → succ_out_ga(one(X), zero(Z))
U34_ga(X, Z, succ_out_ga(X, Z)) → succZ_out_ga(one(X), zero(Z))
U15_aga(Y, Z, succZ_out_ga(Y, Z)) → addc_out_aga(b, Y, Z)
addc_in_aga(X, Y, Z) → U16_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(zero(X), zero(Y), one(Z)) → U23_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aga(zero(X), zero(Y), one(Z))
addC_in_aga(zero(X), one(Y), zero(Z)) → U24_aga(X, Y, Z, addX_in_aga(X, Y, Z))
addX_in_aga(zero(X), b, one(X)) → U17_aga(X, binaryZ_in_a(X))
U17_aga(X, binaryZ_out_a(X)) → addX_out_aga(zero(X), b, one(X))
addX_in_aga(one(X), b, zero(Z)) → U18_aga(X, Z, succ_in_aa(X, Z))
U18_aga(X, Z, succ_out_aa(X, Z)) → addX_out_aga(one(X), b, zero(Z))
addX_in_aga(X, Y, Z) → U19_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(one(X), zero(Y), zero(Z)) → U25_aga(X, Y, Z, addY_in_aaa(X, Y, Z))
U25_aga(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aga(one(X), zero(Y), zero(Z))
addC_in_aga(one(X), one(Y), one(Z)) → U26_aga(X, Y, Z, addc_in_aga(X, Y, Z))
U26_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addC_out_aga(one(X), one(Y), one(Z))
U19_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addX_out_aga(X, Y, Z)
U24_aga(X, Y, Z, addX_out_aga(X, Y, Z)) → addC_out_aga(zero(X), one(Y), zero(Z))
U16_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addc_out_aga(X, Y, Z)
U13_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_aga(one(X), one(Y), zero(Z))
U6_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → addx_out_aga(X, Y, Z)
U11_aga(X, Y, Z, addx_out_aga(X, Y, Z)) → addz_out_aga(zero(X), one(Y), one(Z))
U3_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → add_out_aga(X, Y, Z)
U37_aaa(R, S, RSS, add_out_aga(S, zero(RS), RSS)) → times_out_aaa(one(R), S, RSS)
U35_aaa(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aaa(zero(R), S, zero(RS))
U35_aag(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aag(zero(R), S, zero(RS))
times_in_aag(one(R), S, RSS) → U36_aag(R, S, RSS, times_in_aaa(R, S, RS))
U36_aag(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aag(R, S, RSS, add_in_agg(S, zero(RS), RSS))
add_in_agg(b, b, b) → add_out_agg(b, b, b)
add_in_agg(X, b, X) → U1_agg(X, binaryZ_in_g(X))
U1_agg(X, binaryZ_out_g(X)) → add_out_agg(X, b, X)
add_in_agg(b, Y, Y) → U2_agg(Y, binaryZ_in_g(Y))
U2_agg(Y, binaryZ_out_g(Y)) → add_out_agg(b, Y, Y)
add_in_agg(X, Y, Z) → U3_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(zero(X), zero(Y), zero(Z)) → U10_agg(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_agg(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_agg(zero(X), zero(Y), zero(Z))
addz_in_agg(zero(X), one(Y), one(Z)) → U11_agg(X, Y, Z, addx_in_agg(X, Y, Z))
addx_in_agg(one(X), b, one(X)) → U4_agg(X, binary_in_g(X))
U4_agg(X, binary_out_g(X)) → addx_out_agg(one(X), b, one(X))
addx_in_agg(zero(X), b, zero(X)) → U5_agg(X, binaryZ_in_a(X))
U5_agg(X, binaryZ_out_a(X)) → addx_out_agg(zero(X), b, zero(X))
addx_in_agg(X, Y, Z) → U6_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(one(X), zero(Y), one(Z)) → U12_agg(X, Y, Z, addy_in_aag(X, Y, Z))
addy_in_aag(b, one(Y), one(Y)) → U7_aag(Y, binary_in_g(Y))
U7_aag(Y, binary_out_g(Y)) → addy_out_aag(b, one(Y), one(Y))
addy_in_aag(b, zero(Y), zero(Y)) → U8_aag(Y, binaryZ_in_a(Y))
U8_aag(Y, binaryZ_out_a(Y)) → addy_out_aag(b, zero(Y), zero(Y))
addy_in_aag(X, Y, Z) → U9_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(zero(X), zero(Y), zero(Z)) → U10_aag(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_aag(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aag(zero(X), zero(Y), zero(Z))
addz_in_aag(zero(X), one(Y), one(Z)) → U11_aag(X, Y, Z, addx_in_aag(X, Y, Z))
addx_in_aag(one(X), b, one(X)) → U4_aag(X, binary_in_g(X))
U4_aag(X, binary_out_g(X)) → addx_out_aag(one(X), b, one(X))
addx_in_aag(zero(X), b, zero(X)) → U5_aag(X, binaryZ_in_a(X))
U5_aag(X, binaryZ_out_a(X)) → addx_out_aag(zero(X), b, zero(X))
addx_in_aag(X, Y, Z) → U6_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(one(X), zero(Y), one(Z)) → U12_aag(X, Y, Z, addy_in_aag(X, Y, Z))
U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_aag(one(X), zero(Y), one(Z))
addz_in_aag(one(X), one(Y), zero(Z)) → U13_aag(X, Y, Z, addc_in_aaa(X, Y, Z))
U13_aag(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aag(one(X), one(Y), zero(Z))
U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addx_out_aag(X, Y, Z)
U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) → addz_out_aag(zero(X), one(Y), one(Z))
U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addy_out_aag(X, Y, Z)
U12_agg(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_agg(one(X), zero(Y), one(Z))
addz_in_agg(one(X), one(Y), zero(Z)) → U13_agg(X, Y, Z, addc_in_aga(X, Y, Z))
U13_agg(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_agg(one(X), one(Y), zero(Z))
U6_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → addx_out_agg(X, Y, Z)
U11_agg(X, Y, Z, addx_out_agg(X, Y, Z)) → addz_out_agg(zero(X), one(Y), one(Z))
U3_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → add_out_agg(X, Y, Z)
U37_aag(R, S, RSS, add_out_agg(S, zero(RS), RSS)) → times_out_aag(one(R), S, RSS)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
BINARY_IN_A(one(X)) → BINARY_IN_A(X)
BINARYZ_IN_A(one(X)) → BINARY_IN_A(X)
BINARY_IN_A(zero(X)) → BINARYZ_IN_A(X)
BINARYZ_IN_A(zero(X)) → BINARYZ_IN_A(X)
times_in_aag(one(b), X, X) → times_out_aag(one(b), X, X)
times_in_aag(zero(R), S, zero(RS)) → U35_aag(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(b), X, X) → times_out_aaa(one(b), X, X)
times_in_aaa(zero(R), S, zero(RS)) → U35_aaa(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(R), S, RSS) → U36_aaa(R, S, RSS, times_in_aaa(R, S, RS))
U36_aaa(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aaa(R, S, RSS, add_in_aga(S, zero(RS), RSS))
add_in_aga(b, b, b) → add_out_aga(b, b, b)
add_in_aga(X, b, X) → U1_aga(X, binaryZ_in_a(X))
binaryZ_in_a(zero(X)) → U29_a(X, binaryZ_in_a(X))
binaryZ_in_a(one(X)) → U30_a(X, binary_in_a(X))
binary_in_a(b) → binary_out_a(b)
binary_in_a(zero(X)) → U27_a(X, binaryZ_in_a(X))
U27_a(X, binaryZ_out_a(X)) → binary_out_a(zero(X))
binary_in_a(one(X)) → U28_a(X, binary_in_a(X))
U28_a(X, binary_out_a(X)) → binary_out_a(one(X))
U30_a(X, binary_out_a(X)) → binaryZ_out_a(one(X))
U29_a(X, binaryZ_out_a(X)) → binaryZ_out_a(zero(X))
U1_aga(X, binaryZ_out_a(X)) → add_out_aga(X, b, X)
add_in_aga(b, Y, Y) → U2_aga(Y, binaryZ_in_g(Y))
binaryZ_in_g(zero(X)) → U29_g(X, binaryZ_in_a(X))
U29_g(X, binaryZ_out_a(X)) → binaryZ_out_g(zero(X))
binaryZ_in_g(one(X)) → U30_g(X, binary_in_g(X))
binary_in_g(b) → binary_out_g(b)
binary_in_g(zero(X)) → U27_g(X, binaryZ_in_a(X))
U27_g(X, binaryZ_out_a(X)) → binary_out_g(zero(X))
binary_in_g(one(X)) → U28_g(X, binary_in_g(X))
U28_g(X, binary_out_g(X)) → binary_out_g(one(X))
U30_g(X, binary_out_g(X)) → binaryZ_out_g(one(X))
U2_aga(Y, binaryZ_out_g(Y)) → add_out_aga(b, Y, Y)
add_in_aga(X, Y, Z) → U3_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(zero(X), zero(Y), zero(Z)) → U10_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), zero(Y), zero(Z)) → U10_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), one(Y), one(Z)) → U11_aaa(X, Y, Z, addx_in_aaa(X, Y, Z))
addx_in_aaa(one(X), b, one(X)) → U4_aaa(X, binary_in_a(X))
U4_aaa(X, binary_out_a(X)) → addx_out_aaa(one(X), b, one(X))
addx_in_aaa(zero(X), b, zero(X)) → U5_aaa(X, binaryZ_in_a(X))
U5_aaa(X, binaryZ_out_a(X)) → addx_out_aaa(zero(X), b, zero(X))
addx_in_aaa(X, Y, Z) → U6_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), zero(Y), one(Z)) → U12_aaa(X, Y, Z, addy_in_aaa(X, Y, Z))
addy_in_aaa(b, one(Y), one(Y)) → U7_aaa(Y, binary_in_a(Y))
U7_aaa(Y, binary_out_a(Y)) → addy_out_aaa(b, one(Y), one(Y))
addy_in_aaa(b, zero(Y), zero(Y)) → U8_aaa(Y, binaryZ_in_a(Y))
U8_aaa(Y, binaryZ_out_a(Y)) → addy_out_aaa(b, zero(Y), zero(Y))
addy_in_aaa(X, Y, Z) → U9_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), one(Y), zero(Z)) → U13_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
addc_in_aaa(b, b, one(b)) → addc_out_aaa(b, b, one(b))
addc_in_aaa(X, b, Z) → U14_aaa(X, Z, succZ_in_aa(X, Z))
succZ_in_aa(zero(X), one(X)) → U33_aa(X, binaryZ_in_a(X))
U33_aa(X, binaryZ_out_a(X)) → succZ_out_aa(zero(X), one(X))
succZ_in_aa(one(X), zero(Z)) → U34_aa(X, Z, succ_in_aa(X, Z))
succ_in_aa(b, one(b)) → succ_out_aa(b, one(b))
succ_in_aa(zero(X), one(X)) → U31_aa(X, binaryZ_in_a(X))
U31_aa(X, binaryZ_out_a(X)) → succ_out_aa(zero(X), one(X))
succ_in_aa(one(X), zero(Z)) → U32_aa(X, Z, succ_in_aa(X, Z))
U32_aa(X, Z, succ_out_aa(X, Z)) → succ_out_aa(one(X), zero(Z))
U34_aa(X, Z, succ_out_aa(X, Z)) → succZ_out_aa(one(X), zero(Z))
U14_aaa(X, Z, succZ_out_aa(X, Z)) → addc_out_aaa(X, b, Z)
addc_in_aaa(b, Y, Z) → U15_aaa(Y, Z, succZ_in_aa(Y, Z))
U15_aaa(Y, Z, succZ_out_aa(Y, Z)) → addc_out_aaa(b, Y, Z)
addc_in_aaa(X, Y, Z) → U16_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(zero(X), zero(Y), one(Z)) → U23_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), zero(Y), one(Z))
addC_in_aaa(zero(X), one(Y), zero(Z)) → U24_aaa(X, Y, Z, addX_in_aaa(X, Y, Z))
addX_in_aaa(zero(X), b, one(X)) → U17_aaa(X, binaryZ_in_a(X))
U17_aaa(X, binaryZ_out_a(X)) → addX_out_aaa(zero(X), b, one(X))
addX_in_aaa(one(X), b, zero(Z)) → U18_aaa(X, Z, succ_in_aa(X, Z))
U18_aaa(X, Z, succ_out_aa(X, Z)) → addX_out_aaa(one(X), b, zero(Z))
addX_in_aaa(X, Y, Z) → U19_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), zero(Y), zero(Z)) → U25_aaa(X, Y, Z, addY_in_aaa(X, Y, Z))
addY_in_aaa(b, zero(Y), one(Y)) → U20_aaa(Y, binaryZ_in_a(Y))
U20_aaa(Y, binaryZ_out_a(Y)) → addY_out_aaa(b, zero(Y), one(Y))
addY_in_aaa(b, one(Y), zero(Z)) → U21_aaa(Y, Z, succ_in_aa(Y, Z))
U21_aaa(Y, Z, succ_out_aa(Y, Z)) → addY_out_aaa(b, one(Y), zero(Z))
addY_in_aaa(X, Y, Z) → U22_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), one(Y), one(Z)) → U26_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
U26_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), one(Y), one(Z))
U22_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addY_out_aaa(X, Y, Z)
U25_aaa(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), zero(Y), zero(Z))
U19_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addX_out_aaa(X, Y, Z)
U24_aaa(X, Y, Z, addX_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), one(Y), zero(Z))
U16_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addc_out_aaa(X, Y, Z)
U13_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), one(Y), zero(Z))
U9_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addy_out_aaa(X, Y, Z)
U12_aaa(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), zero(Y), one(Z))
U6_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addx_out_aaa(X, Y, Z)
U11_aaa(X, Y, Z, addx_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), one(Y), one(Z))
U10_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), zero(Y), zero(Z))
U10_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aga(zero(X), zero(Y), zero(Z))
addz_in_aga(zero(X), one(Y), one(Z)) → U11_aga(X, Y, Z, addx_in_aga(X, Y, Z))
addx_in_aga(one(X), b, one(X)) → U4_aga(X, binary_in_a(X))
U4_aga(X, binary_out_a(X)) → addx_out_aga(one(X), b, one(X))
addx_in_aga(zero(X), b, zero(X)) → U5_aga(X, binaryZ_in_a(X))
U5_aga(X, binaryZ_out_a(X)) → addx_out_aga(zero(X), b, zero(X))
addx_in_aga(X, Y, Z) → U6_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(one(X), zero(Y), one(Z)) → U12_aga(X, Y, Z, addy_in_aaa(X, Y, Z))
U12_aga(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aga(one(X), zero(Y), one(Z))
addz_in_aga(one(X), one(Y), zero(Z)) → U13_aga(X, Y, Z, addc_in_aga(X, Y, Z))
addc_in_aga(b, b, one(b)) → addc_out_aga(b, b, one(b))
addc_in_aga(X, b, Z) → U14_aga(X, Z, succZ_in_aa(X, Z))
U14_aga(X, Z, succZ_out_aa(X, Z)) → addc_out_aga(X, b, Z)
addc_in_aga(b, Y, Z) → U15_aga(Y, Z, succZ_in_ga(Y, Z))
succZ_in_ga(zero(X), one(X)) → U33_ga(X, binaryZ_in_a(X))
U33_ga(X, binaryZ_out_a(X)) → succZ_out_ga(zero(X), one(X))
succZ_in_ga(one(X), zero(Z)) → U34_ga(X, Z, succ_in_ga(X, Z))
succ_in_ga(b, one(b)) → succ_out_ga(b, one(b))
succ_in_ga(zero(X), one(X)) → U31_ga(X, binaryZ_in_a(X))
U31_ga(X, binaryZ_out_a(X)) → succ_out_ga(zero(X), one(X))
succ_in_ga(one(X), zero(Z)) → U32_ga(X, Z, succ_in_ga(X, Z))
U32_ga(X, Z, succ_out_ga(X, Z)) → succ_out_ga(one(X), zero(Z))
U34_ga(X, Z, succ_out_ga(X, Z)) → succZ_out_ga(one(X), zero(Z))
U15_aga(Y, Z, succZ_out_ga(Y, Z)) → addc_out_aga(b, Y, Z)
addc_in_aga(X, Y, Z) → U16_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(zero(X), zero(Y), one(Z)) → U23_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aga(zero(X), zero(Y), one(Z))
addC_in_aga(zero(X), one(Y), zero(Z)) → U24_aga(X, Y, Z, addX_in_aga(X, Y, Z))
addX_in_aga(zero(X), b, one(X)) → U17_aga(X, binaryZ_in_a(X))
U17_aga(X, binaryZ_out_a(X)) → addX_out_aga(zero(X), b, one(X))
addX_in_aga(one(X), b, zero(Z)) → U18_aga(X, Z, succ_in_aa(X, Z))
U18_aga(X, Z, succ_out_aa(X, Z)) → addX_out_aga(one(X), b, zero(Z))
addX_in_aga(X, Y, Z) → U19_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(one(X), zero(Y), zero(Z)) → U25_aga(X, Y, Z, addY_in_aaa(X, Y, Z))
U25_aga(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aga(one(X), zero(Y), zero(Z))
addC_in_aga(one(X), one(Y), one(Z)) → U26_aga(X, Y, Z, addc_in_aga(X, Y, Z))
U26_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addC_out_aga(one(X), one(Y), one(Z))
U19_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addX_out_aga(X, Y, Z)
U24_aga(X, Y, Z, addX_out_aga(X, Y, Z)) → addC_out_aga(zero(X), one(Y), zero(Z))
U16_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addc_out_aga(X, Y, Z)
U13_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_aga(one(X), one(Y), zero(Z))
U6_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → addx_out_aga(X, Y, Z)
U11_aga(X, Y, Z, addx_out_aga(X, Y, Z)) → addz_out_aga(zero(X), one(Y), one(Z))
U3_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → add_out_aga(X, Y, Z)
U37_aaa(R, S, RSS, add_out_aga(S, zero(RS), RSS)) → times_out_aaa(one(R), S, RSS)
U35_aaa(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aaa(zero(R), S, zero(RS))
U35_aag(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aag(zero(R), S, zero(RS))
times_in_aag(one(R), S, RSS) → U36_aag(R, S, RSS, times_in_aaa(R, S, RS))
U36_aag(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aag(R, S, RSS, add_in_agg(S, zero(RS), RSS))
add_in_agg(b, b, b) → add_out_agg(b, b, b)
add_in_agg(X, b, X) → U1_agg(X, binaryZ_in_g(X))
U1_agg(X, binaryZ_out_g(X)) → add_out_agg(X, b, X)
add_in_agg(b, Y, Y) → U2_agg(Y, binaryZ_in_g(Y))
U2_agg(Y, binaryZ_out_g(Y)) → add_out_agg(b, Y, Y)
add_in_agg(X, Y, Z) → U3_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(zero(X), zero(Y), zero(Z)) → U10_agg(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_agg(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_agg(zero(X), zero(Y), zero(Z))
addz_in_agg(zero(X), one(Y), one(Z)) → U11_agg(X, Y, Z, addx_in_agg(X, Y, Z))
addx_in_agg(one(X), b, one(X)) → U4_agg(X, binary_in_g(X))
U4_agg(X, binary_out_g(X)) → addx_out_agg(one(X), b, one(X))
addx_in_agg(zero(X), b, zero(X)) → U5_agg(X, binaryZ_in_a(X))
U5_agg(X, binaryZ_out_a(X)) → addx_out_agg(zero(X), b, zero(X))
addx_in_agg(X, Y, Z) → U6_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(one(X), zero(Y), one(Z)) → U12_agg(X, Y, Z, addy_in_aag(X, Y, Z))
addy_in_aag(b, one(Y), one(Y)) → U7_aag(Y, binary_in_g(Y))
U7_aag(Y, binary_out_g(Y)) → addy_out_aag(b, one(Y), one(Y))
addy_in_aag(b, zero(Y), zero(Y)) → U8_aag(Y, binaryZ_in_a(Y))
U8_aag(Y, binaryZ_out_a(Y)) → addy_out_aag(b, zero(Y), zero(Y))
addy_in_aag(X, Y, Z) → U9_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(zero(X), zero(Y), zero(Z)) → U10_aag(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_aag(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aag(zero(X), zero(Y), zero(Z))
addz_in_aag(zero(X), one(Y), one(Z)) → U11_aag(X, Y, Z, addx_in_aag(X, Y, Z))
addx_in_aag(one(X), b, one(X)) → U4_aag(X, binary_in_g(X))
U4_aag(X, binary_out_g(X)) → addx_out_aag(one(X), b, one(X))
addx_in_aag(zero(X), b, zero(X)) → U5_aag(X, binaryZ_in_a(X))
U5_aag(X, binaryZ_out_a(X)) → addx_out_aag(zero(X), b, zero(X))
addx_in_aag(X, Y, Z) → U6_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(one(X), zero(Y), one(Z)) → U12_aag(X, Y, Z, addy_in_aag(X, Y, Z))
U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_aag(one(X), zero(Y), one(Z))
addz_in_aag(one(X), one(Y), zero(Z)) → U13_aag(X, Y, Z, addc_in_aaa(X, Y, Z))
U13_aag(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aag(one(X), one(Y), zero(Z))
U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addx_out_aag(X, Y, Z)
U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) → addz_out_aag(zero(X), one(Y), one(Z))
U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addy_out_aag(X, Y, Z)
U12_agg(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_agg(one(X), zero(Y), one(Z))
addz_in_agg(one(X), one(Y), zero(Z)) → U13_agg(X, Y, Z, addc_in_aga(X, Y, Z))
U13_agg(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_agg(one(X), one(Y), zero(Z))
U6_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → addx_out_agg(X, Y, Z)
U11_agg(X, Y, Z, addx_out_agg(X, Y, Z)) → addz_out_agg(zero(X), one(Y), one(Z))
U3_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → add_out_agg(X, Y, Z)
U37_aag(R, S, RSS, add_out_agg(S, zero(RS), RSS)) → times_out_aag(one(R), S, RSS)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
BINARY_IN_A(one(X)) → BINARY_IN_A(X)
BINARYZ_IN_A(one(X)) → BINARY_IN_A(X)
BINARY_IN_A(zero(X)) → BINARYZ_IN_A(X)
BINARYZ_IN_A(zero(X)) → BINARYZ_IN_A(X)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
BINARYZ_IN_A → BINARYZ_IN_A
BINARY_IN_A → BINARY_IN_A
BINARY_IN_A → BINARYZ_IN_A
BINARYZ_IN_A → BINARY_IN_A
BINARYZ_IN_A → BINARYZ_IN_A
BINARY_IN_A → BINARY_IN_A
BINARY_IN_A → BINARYZ_IN_A
BINARYZ_IN_A → BINARY_IN_A
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
SUCC_IN_GA(one(X), zero(Z)) → SUCC_IN_GA(X, Z)
times_in_aag(one(b), X, X) → times_out_aag(one(b), X, X)
times_in_aag(zero(R), S, zero(RS)) → U35_aag(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(b), X, X) → times_out_aaa(one(b), X, X)
times_in_aaa(zero(R), S, zero(RS)) → U35_aaa(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(R), S, RSS) → U36_aaa(R, S, RSS, times_in_aaa(R, S, RS))
U36_aaa(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aaa(R, S, RSS, add_in_aga(S, zero(RS), RSS))
add_in_aga(b, b, b) → add_out_aga(b, b, b)
add_in_aga(X, b, X) → U1_aga(X, binaryZ_in_a(X))
binaryZ_in_a(zero(X)) → U29_a(X, binaryZ_in_a(X))
binaryZ_in_a(one(X)) → U30_a(X, binary_in_a(X))
binary_in_a(b) → binary_out_a(b)
binary_in_a(zero(X)) → U27_a(X, binaryZ_in_a(X))
U27_a(X, binaryZ_out_a(X)) → binary_out_a(zero(X))
binary_in_a(one(X)) → U28_a(X, binary_in_a(X))
U28_a(X, binary_out_a(X)) → binary_out_a(one(X))
U30_a(X, binary_out_a(X)) → binaryZ_out_a(one(X))
U29_a(X, binaryZ_out_a(X)) → binaryZ_out_a(zero(X))
U1_aga(X, binaryZ_out_a(X)) → add_out_aga(X, b, X)
add_in_aga(b, Y, Y) → U2_aga(Y, binaryZ_in_g(Y))
binaryZ_in_g(zero(X)) → U29_g(X, binaryZ_in_a(X))
U29_g(X, binaryZ_out_a(X)) → binaryZ_out_g(zero(X))
binaryZ_in_g(one(X)) → U30_g(X, binary_in_g(X))
binary_in_g(b) → binary_out_g(b)
binary_in_g(zero(X)) → U27_g(X, binaryZ_in_a(X))
U27_g(X, binaryZ_out_a(X)) → binary_out_g(zero(X))
binary_in_g(one(X)) → U28_g(X, binary_in_g(X))
U28_g(X, binary_out_g(X)) → binary_out_g(one(X))
U30_g(X, binary_out_g(X)) → binaryZ_out_g(one(X))
U2_aga(Y, binaryZ_out_g(Y)) → add_out_aga(b, Y, Y)
add_in_aga(X, Y, Z) → U3_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(zero(X), zero(Y), zero(Z)) → U10_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), zero(Y), zero(Z)) → U10_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), one(Y), one(Z)) → U11_aaa(X, Y, Z, addx_in_aaa(X, Y, Z))
addx_in_aaa(one(X), b, one(X)) → U4_aaa(X, binary_in_a(X))
U4_aaa(X, binary_out_a(X)) → addx_out_aaa(one(X), b, one(X))
addx_in_aaa(zero(X), b, zero(X)) → U5_aaa(X, binaryZ_in_a(X))
U5_aaa(X, binaryZ_out_a(X)) → addx_out_aaa(zero(X), b, zero(X))
addx_in_aaa(X, Y, Z) → U6_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), zero(Y), one(Z)) → U12_aaa(X, Y, Z, addy_in_aaa(X, Y, Z))
addy_in_aaa(b, one(Y), one(Y)) → U7_aaa(Y, binary_in_a(Y))
U7_aaa(Y, binary_out_a(Y)) → addy_out_aaa(b, one(Y), one(Y))
addy_in_aaa(b, zero(Y), zero(Y)) → U8_aaa(Y, binaryZ_in_a(Y))
U8_aaa(Y, binaryZ_out_a(Y)) → addy_out_aaa(b, zero(Y), zero(Y))
addy_in_aaa(X, Y, Z) → U9_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), one(Y), zero(Z)) → U13_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
addc_in_aaa(b, b, one(b)) → addc_out_aaa(b, b, one(b))
addc_in_aaa(X, b, Z) → U14_aaa(X, Z, succZ_in_aa(X, Z))
succZ_in_aa(zero(X), one(X)) → U33_aa(X, binaryZ_in_a(X))
U33_aa(X, binaryZ_out_a(X)) → succZ_out_aa(zero(X), one(X))
succZ_in_aa(one(X), zero(Z)) → U34_aa(X, Z, succ_in_aa(X, Z))
succ_in_aa(b, one(b)) → succ_out_aa(b, one(b))
succ_in_aa(zero(X), one(X)) → U31_aa(X, binaryZ_in_a(X))
U31_aa(X, binaryZ_out_a(X)) → succ_out_aa(zero(X), one(X))
succ_in_aa(one(X), zero(Z)) → U32_aa(X, Z, succ_in_aa(X, Z))
U32_aa(X, Z, succ_out_aa(X, Z)) → succ_out_aa(one(X), zero(Z))
U34_aa(X, Z, succ_out_aa(X, Z)) → succZ_out_aa(one(X), zero(Z))
U14_aaa(X, Z, succZ_out_aa(X, Z)) → addc_out_aaa(X, b, Z)
addc_in_aaa(b, Y, Z) → U15_aaa(Y, Z, succZ_in_aa(Y, Z))
U15_aaa(Y, Z, succZ_out_aa(Y, Z)) → addc_out_aaa(b, Y, Z)
addc_in_aaa(X, Y, Z) → U16_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(zero(X), zero(Y), one(Z)) → U23_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), zero(Y), one(Z))
addC_in_aaa(zero(X), one(Y), zero(Z)) → U24_aaa(X, Y, Z, addX_in_aaa(X, Y, Z))
addX_in_aaa(zero(X), b, one(X)) → U17_aaa(X, binaryZ_in_a(X))
U17_aaa(X, binaryZ_out_a(X)) → addX_out_aaa(zero(X), b, one(X))
addX_in_aaa(one(X), b, zero(Z)) → U18_aaa(X, Z, succ_in_aa(X, Z))
U18_aaa(X, Z, succ_out_aa(X, Z)) → addX_out_aaa(one(X), b, zero(Z))
addX_in_aaa(X, Y, Z) → U19_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), zero(Y), zero(Z)) → U25_aaa(X, Y, Z, addY_in_aaa(X, Y, Z))
addY_in_aaa(b, zero(Y), one(Y)) → U20_aaa(Y, binaryZ_in_a(Y))
U20_aaa(Y, binaryZ_out_a(Y)) → addY_out_aaa(b, zero(Y), one(Y))
addY_in_aaa(b, one(Y), zero(Z)) → U21_aaa(Y, Z, succ_in_aa(Y, Z))
U21_aaa(Y, Z, succ_out_aa(Y, Z)) → addY_out_aaa(b, one(Y), zero(Z))
addY_in_aaa(X, Y, Z) → U22_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), one(Y), one(Z)) → U26_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
U26_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), one(Y), one(Z))
U22_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addY_out_aaa(X, Y, Z)
U25_aaa(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), zero(Y), zero(Z))
U19_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addX_out_aaa(X, Y, Z)
U24_aaa(X, Y, Z, addX_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), one(Y), zero(Z))
U16_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addc_out_aaa(X, Y, Z)
U13_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), one(Y), zero(Z))
U9_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addy_out_aaa(X, Y, Z)
U12_aaa(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), zero(Y), one(Z))
U6_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addx_out_aaa(X, Y, Z)
U11_aaa(X, Y, Z, addx_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), one(Y), one(Z))
U10_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), zero(Y), zero(Z))
U10_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aga(zero(X), zero(Y), zero(Z))
addz_in_aga(zero(X), one(Y), one(Z)) → U11_aga(X, Y, Z, addx_in_aga(X, Y, Z))
addx_in_aga(one(X), b, one(X)) → U4_aga(X, binary_in_a(X))
U4_aga(X, binary_out_a(X)) → addx_out_aga(one(X), b, one(X))
addx_in_aga(zero(X), b, zero(X)) → U5_aga(X, binaryZ_in_a(X))
U5_aga(X, binaryZ_out_a(X)) → addx_out_aga(zero(X), b, zero(X))
addx_in_aga(X, Y, Z) → U6_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(one(X), zero(Y), one(Z)) → U12_aga(X, Y, Z, addy_in_aaa(X, Y, Z))
U12_aga(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aga(one(X), zero(Y), one(Z))
addz_in_aga(one(X), one(Y), zero(Z)) → U13_aga(X, Y, Z, addc_in_aga(X, Y, Z))
addc_in_aga(b, b, one(b)) → addc_out_aga(b, b, one(b))
addc_in_aga(X, b, Z) → U14_aga(X, Z, succZ_in_aa(X, Z))
U14_aga(X, Z, succZ_out_aa(X, Z)) → addc_out_aga(X, b, Z)
addc_in_aga(b, Y, Z) → U15_aga(Y, Z, succZ_in_ga(Y, Z))
succZ_in_ga(zero(X), one(X)) → U33_ga(X, binaryZ_in_a(X))
U33_ga(X, binaryZ_out_a(X)) → succZ_out_ga(zero(X), one(X))
succZ_in_ga(one(X), zero(Z)) → U34_ga(X, Z, succ_in_ga(X, Z))
succ_in_ga(b, one(b)) → succ_out_ga(b, one(b))
succ_in_ga(zero(X), one(X)) → U31_ga(X, binaryZ_in_a(X))
U31_ga(X, binaryZ_out_a(X)) → succ_out_ga(zero(X), one(X))
succ_in_ga(one(X), zero(Z)) → U32_ga(X, Z, succ_in_ga(X, Z))
U32_ga(X, Z, succ_out_ga(X, Z)) → succ_out_ga(one(X), zero(Z))
U34_ga(X, Z, succ_out_ga(X, Z)) → succZ_out_ga(one(X), zero(Z))
U15_aga(Y, Z, succZ_out_ga(Y, Z)) → addc_out_aga(b, Y, Z)
addc_in_aga(X, Y, Z) → U16_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(zero(X), zero(Y), one(Z)) → U23_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aga(zero(X), zero(Y), one(Z))
addC_in_aga(zero(X), one(Y), zero(Z)) → U24_aga(X, Y, Z, addX_in_aga(X, Y, Z))
addX_in_aga(zero(X), b, one(X)) → U17_aga(X, binaryZ_in_a(X))
U17_aga(X, binaryZ_out_a(X)) → addX_out_aga(zero(X), b, one(X))
addX_in_aga(one(X), b, zero(Z)) → U18_aga(X, Z, succ_in_aa(X, Z))
U18_aga(X, Z, succ_out_aa(X, Z)) → addX_out_aga(one(X), b, zero(Z))
addX_in_aga(X, Y, Z) → U19_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(one(X), zero(Y), zero(Z)) → U25_aga(X, Y, Z, addY_in_aaa(X, Y, Z))
U25_aga(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aga(one(X), zero(Y), zero(Z))
addC_in_aga(one(X), one(Y), one(Z)) → U26_aga(X, Y, Z, addc_in_aga(X, Y, Z))
U26_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addC_out_aga(one(X), one(Y), one(Z))
U19_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addX_out_aga(X, Y, Z)
U24_aga(X, Y, Z, addX_out_aga(X, Y, Z)) → addC_out_aga(zero(X), one(Y), zero(Z))
U16_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addc_out_aga(X, Y, Z)
U13_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_aga(one(X), one(Y), zero(Z))
U6_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → addx_out_aga(X, Y, Z)
U11_aga(X, Y, Z, addx_out_aga(X, Y, Z)) → addz_out_aga(zero(X), one(Y), one(Z))
U3_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → add_out_aga(X, Y, Z)
U37_aaa(R, S, RSS, add_out_aga(S, zero(RS), RSS)) → times_out_aaa(one(R), S, RSS)
U35_aaa(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aaa(zero(R), S, zero(RS))
U35_aag(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aag(zero(R), S, zero(RS))
times_in_aag(one(R), S, RSS) → U36_aag(R, S, RSS, times_in_aaa(R, S, RS))
U36_aag(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aag(R, S, RSS, add_in_agg(S, zero(RS), RSS))
add_in_agg(b, b, b) → add_out_agg(b, b, b)
add_in_agg(X, b, X) → U1_agg(X, binaryZ_in_g(X))
U1_agg(X, binaryZ_out_g(X)) → add_out_agg(X, b, X)
add_in_agg(b, Y, Y) → U2_agg(Y, binaryZ_in_g(Y))
U2_agg(Y, binaryZ_out_g(Y)) → add_out_agg(b, Y, Y)
add_in_agg(X, Y, Z) → U3_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(zero(X), zero(Y), zero(Z)) → U10_agg(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_agg(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_agg(zero(X), zero(Y), zero(Z))
addz_in_agg(zero(X), one(Y), one(Z)) → U11_agg(X, Y, Z, addx_in_agg(X, Y, Z))
addx_in_agg(one(X), b, one(X)) → U4_agg(X, binary_in_g(X))
U4_agg(X, binary_out_g(X)) → addx_out_agg(one(X), b, one(X))
addx_in_agg(zero(X), b, zero(X)) → U5_agg(X, binaryZ_in_a(X))
U5_agg(X, binaryZ_out_a(X)) → addx_out_agg(zero(X), b, zero(X))
addx_in_agg(X, Y, Z) → U6_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(one(X), zero(Y), one(Z)) → U12_agg(X, Y, Z, addy_in_aag(X, Y, Z))
addy_in_aag(b, one(Y), one(Y)) → U7_aag(Y, binary_in_g(Y))
U7_aag(Y, binary_out_g(Y)) → addy_out_aag(b, one(Y), one(Y))
addy_in_aag(b, zero(Y), zero(Y)) → U8_aag(Y, binaryZ_in_a(Y))
U8_aag(Y, binaryZ_out_a(Y)) → addy_out_aag(b, zero(Y), zero(Y))
addy_in_aag(X, Y, Z) → U9_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(zero(X), zero(Y), zero(Z)) → U10_aag(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_aag(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aag(zero(X), zero(Y), zero(Z))
addz_in_aag(zero(X), one(Y), one(Z)) → U11_aag(X, Y, Z, addx_in_aag(X, Y, Z))
addx_in_aag(one(X), b, one(X)) → U4_aag(X, binary_in_g(X))
U4_aag(X, binary_out_g(X)) → addx_out_aag(one(X), b, one(X))
addx_in_aag(zero(X), b, zero(X)) → U5_aag(X, binaryZ_in_a(X))
U5_aag(X, binaryZ_out_a(X)) → addx_out_aag(zero(X), b, zero(X))
addx_in_aag(X, Y, Z) → U6_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(one(X), zero(Y), one(Z)) → U12_aag(X, Y, Z, addy_in_aag(X, Y, Z))
U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_aag(one(X), zero(Y), one(Z))
addz_in_aag(one(X), one(Y), zero(Z)) → U13_aag(X, Y, Z, addc_in_aaa(X, Y, Z))
U13_aag(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aag(one(X), one(Y), zero(Z))
U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addx_out_aag(X, Y, Z)
U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) → addz_out_aag(zero(X), one(Y), one(Z))
U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addy_out_aag(X, Y, Z)
U12_agg(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_agg(one(X), zero(Y), one(Z))
addz_in_agg(one(X), one(Y), zero(Z)) → U13_agg(X, Y, Z, addc_in_aga(X, Y, Z))
U13_agg(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_agg(one(X), one(Y), zero(Z))
U6_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → addx_out_agg(X, Y, Z)
U11_agg(X, Y, Z, addx_out_agg(X, Y, Z)) → addz_out_agg(zero(X), one(Y), one(Z))
U3_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → add_out_agg(X, Y, Z)
U37_aag(R, S, RSS, add_out_agg(S, zero(RS), RSS)) → times_out_aag(one(R), S, RSS)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
SUCC_IN_GA(one(X), zero(Z)) → SUCC_IN_GA(X, Z)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
SUCC_IN_GA(one(X)) → SUCC_IN_GA(X)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
SUCC_IN_AA(one(X), zero(Z)) → SUCC_IN_AA(X, Z)
times_in_aag(one(b), X, X) → times_out_aag(one(b), X, X)
times_in_aag(zero(R), S, zero(RS)) → U35_aag(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(b), X, X) → times_out_aaa(one(b), X, X)
times_in_aaa(zero(R), S, zero(RS)) → U35_aaa(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(R), S, RSS) → U36_aaa(R, S, RSS, times_in_aaa(R, S, RS))
U36_aaa(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aaa(R, S, RSS, add_in_aga(S, zero(RS), RSS))
add_in_aga(b, b, b) → add_out_aga(b, b, b)
add_in_aga(X, b, X) → U1_aga(X, binaryZ_in_a(X))
binaryZ_in_a(zero(X)) → U29_a(X, binaryZ_in_a(X))
binaryZ_in_a(one(X)) → U30_a(X, binary_in_a(X))
binary_in_a(b) → binary_out_a(b)
binary_in_a(zero(X)) → U27_a(X, binaryZ_in_a(X))
U27_a(X, binaryZ_out_a(X)) → binary_out_a(zero(X))
binary_in_a(one(X)) → U28_a(X, binary_in_a(X))
U28_a(X, binary_out_a(X)) → binary_out_a(one(X))
U30_a(X, binary_out_a(X)) → binaryZ_out_a(one(X))
U29_a(X, binaryZ_out_a(X)) → binaryZ_out_a(zero(X))
U1_aga(X, binaryZ_out_a(X)) → add_out_aga(X, b, X)
add_in_aga(b, Y, Y) → U2_aga(Y, binaryZ_in_g(Y))
binaryZ_in_g(zero(X)) → U29_g(X, binaryZ_in_a(X))
U29_g(X, binaryZ_out_a(X)) → binaryZ_out_g(zero(X))
binaryZ_in_g(one(X)) → U30_g(X, binary_in_g(X))
binary_in_g(b) → binary_out_g(b)
binary_in_g(zero(X)) → U27_g(X, binaryZ_in_a(X))
U27_g(X, binaryZ_out_a(X)) → binary_out_g(zero(X))
binary_in_g(one(X)) → U28_g(X, binary_in_g(X))
U28_g(X, binary_out_g(X)) → binary_out_g(one(X))
U30_g(X, binary_out_g(X)) → binaryZ_out_g(one(X))
U2_aga(Y, binaryZ_out_g(Y)) → add_out_aga(b, Y, Y)
add_in_aga(X, Y, Z) → U3_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(zero(X), zero(Y), zero(Z)) → U10_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), zero(Y), zero(Z)) → U10_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), one(Y), one(Z)) → U11_aaa(X, Y, Z, addx_in_aaa(X, Y, Z))
addx_in_aaa(one(X), b, one(X)) → U4_aaa(X, binary_in_a(X))
U4_aaa(X, binary_out_a(X)) → addx_out_aaa(one(X), b, one(X))
addx_in_aaa(zero(X), b, zero(X)) → U5_aaa(X, binaryZ_in_a(X))
U5_aaa(X, binaryZ_out_a(X)) → addx_out_aaa(zero(X), b, zero(X))
addx_in_aaa(X, Y, Z) → U6_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), zero(Y), one(Z)) → U12_aaa(X, Y, Z, addy_in_aaa(X, Y, Z))
addy_in_aaa(b, one(Y), one(Y)) → U7_aaa(Y, binary_in_a(Y))
U7_aaa(Y, binary_out_a(Y)) → addy_out_aaa(b, one(Y), one(Y))
addy_in_aaa(b, zero(Y), zero(Y)) → U8_aaa(Y, binaryZ_in_a(Y))
U8_aaa(Y, binaryZ_out_a(Y)) → addy_out_aaa(b, zero(Y), zero(Y))
addy_in_aaa(X, Y, Z) → U9_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), one(Y), zero(Z)) → U13_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
addc_in_aaa(b, b, one(b)) → addc_out_aaa(b, b, one(b))
addc_in_aaa(X, b, Z) → U14_aaa(X, Z, succZ_in_aa(X, Z))
succZ_in_aa(zero(X), one(X)) → U33_aa(X, binaryZ_in_a(X))
U33_aa(X, binaryZ_out_a(X)) → succZ_out_aa(zero(X), one(X))
succZ_in_aa(one(X), zero(Z)) → U34_aa(X, Z, succ_in_aa(X, Z))
succ_in_aa(b, one(b)) → succ_out_aa(b, one(b))
succ_in_aa(zero(X), one(X)) → U31_aa(X, binaryZ_in_a(X))
U31_aa(X, binaryZ_out_a(X)) → succ_out_aa(zero(X), one(X))
succ_in_aa(one(X), zero(Z)) → U32_aa(X, Z, succ_in_aa(X, Z))
U32_aa(X, Z, succ_out_aa(X, Z)) → succ_out_aa(one(X), zero(Z))
U34_aa(X, Z, succ_out_aa(X, Z)) → succZ_out_aa(one(X), zero(Z))
U14_aaa(X, Z, succZ_out_aa(X, Z)) → addc_out_aaa(X, b, Z)
addc_in_aaa(b, Y, Z) → U15_aaa(Y, Z, succZ_in_aa(Y, Z))
U15_aaa(Y, Z, succZ_out_aa(Y, Z)) → addc_out_aaa(b, Y, Z)
addc_in_aaa(X, Y, Z) → U16_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(zero(X), zero(Y), one(Z)) → U23_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), zero(Y), one(Z))
addC_in_aaa(zero(X), one(Y), zero(Z)) → U24_aaa(X, Y, Z, addX_in_aaa(X, Y, Z))
addX_in_aaa(zero(X), b, one(X)) → U17_aaa(X, binaryZ_in_a(X))
U17_aaa(X, binaryZ_out_a(X)) → addX_out_aaa(zero(X), b, one(X))
addX_in_aaa(one(X), b, zero(Z)) → U18_aaa(X, Z, succ_in_aa(X, Z))
U18_aaa(X, Z, succ_out_aa(X, Z)) → addX_out_aaa(one(X), b, zero(Z))
addX_in_aaa(X, Y, Z) → U19_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), zero(Y), zero(Z)) → U25_aaa(X, Y, Z, addY_in_aaa(X, Y, Z))
addY_in_aaa(b, zero(Y), one(Y)) → U20_aaa(Y, binaryZ_in_a(Y))
U20_aaa(Y, binaryZ_out_a(Y)) → addY_out_aaa(b, zero(Y), one(Y))
addY_in_aaa(b, one(Y), zero(Z)) → U21_aaa(Y, Z, succ_in_aa(Y, Z))
U21_aaa(Y, Z, succ_out_aa(Y, Z)) → addY_out_aaa(b, one(Y), zero(Z))
addY_in_aaa(X, Y, Z) → U22_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), one(Y), one(Z)) → U26_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
U26_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), one(Y), one(Z))
U22_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addY_out_aaa(X, Y, Z)
U25_aaa(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), zero(Y), zero(Z))
U19_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addX_out_aaa(X, Y, Z)
U24_aaa(X, Y, Z, addX_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), one(Y), zero(Z))
U16_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addc_out_aaa(X, Y, Z)
U13_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), one(Y), zero(Z))
U9_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addy_out_aaa(X, Y, Z)
U12_aaa(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), zero(Y), one(Z))
U6_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addx_out_aaa(X, Y, Z)
U11_aaa(X, Y, Z, addx_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), one(Y), one(Z))
U10_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), zero(Y), zero(Z))
U10_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aga(zero(X), zero(Y), zero(Z))
addz_in_aga(zero(X), one(Y), one(Z)) → U11_aga(X, Y, Z, addx_in_aga(X, Y, Z))
addx_in_aga(one(X), b, one(X)) → U4_aga(X, binary_in_a(X))
U4_aga(X, binary_out_a(X)) → addx_out_aga(one(X), b, one(X))
addx_in_aga(zero(X), b, zero(X)) → U5_aga(X, binaryZ_in_a(X))
U5_aga(X, binaryZ_out_a(X)) → addx_out_aga(zero(X), b, zero(X))
addx_in_aga(X, Y, Z) → U6_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(one(X), zero(Y), one(Z)) → U12_aga(X, Y, Z, addy_in_aaa(X, Y, Z))
U12_aga(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aga(one(X), zero(Y), one(Z))
addz_in_aga(one(X), one(Y), zero(Z)) → U13_aga(X, Y, Z, addc_in_aga(X, Y, Z))
addc_in_aga(b, b, one(b)) → addc_out_aga(b, b, one(b))
addc_in_aga(X, b, Z) → U14_aga(X, Z, succZ_in_aa(X, Z))
U14_aga(X, Z, succZ_out_aa(X, Z)) → addc_out_aga(X, b, Z)
addc_in_aga(b, Y, Z) → U15_aga(Y, Z, succZ_in_ga(Y, Z))
succZ_in_ga(zero(X), one(X)) → U33_ga(X, binaryZ_in_a(X))
U33_ga(X, binaryZ_out_a(X)) → succZ_out_ga(zero(X), one(X))
succZ_in_ga(one(X), zero(Z)) → U34_ga(X, Z, succ_in_ga(X, Z))
succ_in_ga(b, one(b)) → succ_out_ga(b, one(b))
succ_in_ga(zero(X), one(X)) → U31_ga(X, binaryZ_in_a(X))
U31_ga(X, binaryZ_out_a(X)) → succ_out_ga(zero(X), one(X))
succ_in_ga(one(X), zero(Z)) → U32_ga(X, Z, succ_in_ga(X, Z))
U32_ga(X, Z, succ_out_ga(X, Z)) → succ_out_ga(one(X), zero(Z))
U34_ga(X, Z, succ_out_ga(X, Z)) → succZ_out_ga(one(X), zero(Z))
U15_aga(Y, Z, succZ_out_ga(Y, Z)) → addc_out_aga(b, Y, Z)
addc_in_aga(X, Y, Z) → U16_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(zero(X), zero(Y), one(Z)) → U23_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aga(zero(X), zero(Y), one(Z))
addC_in_aga(zero(X), one(Y), zero(Z)) → U24_aga(X, Y, Z, addX_in_aga(X, Y, Z))
addX_in_aga(zero(X), b, one(X)) → U17_aga(X, binaryZ_in_a(X))
U17_aga(X, binaryZ_out_a(X)) → addX_out_aga(zero(X), b, one(X))
addX_in_aga(one(X), b, zero(Z)) → U18_aga(X, Z, succ_in_aa(X, Z))
U18_aga(X, Z, succ_out_aa(X, Z)) → addX_out_aga(one(X), b, zero(Z))
addX_in_aga(X, Y, Z) → U19_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(one(X), zero(Y), zero(Z)) → U25_aga(X, Y, Z, addY_in_aaa(X, Y, Z))
U25_aga(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aga(one(X), zero(Y), zero(Z))
addC_in_aga(one(X), one(Y), one(Z)) → U26_aga(X, Y, Z, addc_in_aga(X, Y, Z))
U26_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addC_out_aga(one(X), one(Y), one(Z))
U19_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addX_out_aga(X, Y, Z)
U24_aga(X, Y, Z, addX_out_aga(X, Y, Z)) → addC_out_aga(zero(X), one(Y), zero(Z))
U16_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addc_out_aga(X, Y, Z)
U13_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_aga(one(X), one(Y), zero(Z))
U6_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → addx_out_aga(X, Y, Z)
U11_aga(X, Y, Z, addx_out_aga(X, Y, Z)) → addz_out_aga(zero(X), one(Y), one(Z))
U3_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → add_out_aga(X, Y, Z)
U37_aaa(R, S, RSS, add_out_aga(S, zero(RS), RSS)) → times_out_aaa(one(R), S, RSS)
U35_aaa(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aaa(zero(R), S, zero(RS))
U35_aag(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aag(zero(R), S, zero(RS))
times_in_aag(one(R), S, RSS) → U36_aag(R, S, RSS, times_in_aaa(R, S, RS))
U36_aag(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aag(R, S, RSS, add_in_agg(S, zero(RS), RSS))
add_in_agg(b, b, b) → add_out_agg(b, b, b)
add_in_agg(X, b, X) → U1_agg(X, binaryZ_in_g(X))
U1_agg(X, binaryZ_out_g(X)) → add_out_agg(X, b, X)
add_in_agg(b, Y, Y) → U2_agg(Y, binaryZ_in_g(Y))
U2_agg(Y, binaryZ_out_g(Y)) → add_out_agg(b, Y, Y)
add_in_agg(X, Y, Z) → U3_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(zero(X), zero(Y), zero(Z)) → U10_agg(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_agg(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_agg(zero(X), zero(Y), zero(Z))
addz_in_agg(zero(X), one(Y), one(Z)) → U11_agg(X, Y, Z, addx_in_agg(X, Y, Z))
addx_in_agg(one(X), b, one(X)) → U4_agg(X, binary_in_g(X))
U4_agg(X, binary_out_g(X)) → addx_out_agg(one(X), b, one(X))
addx_in_agg(zero(X), b, zero(X)) → U5_agg(X, binaryZ_in_a(X))
U5_agg(X, binaryZ_out_a(X)) → addx_out_agg(zero(X), b, zero(X))
addx_in_agg(X, Y, Z) → U6_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(one(X), zero(Y), one(Z)) → U12_agg(X, Y, Z, addy_in_aag(X, Y, Z))
addy_in_aag(b, one(Y), one(Y)) → U7_aag(Y, binary_in_g(Y))
U7_aag(Y, binary_out_g(Y)) → addy_out_aag(b, one(Y), one(Y))
addy_in_aag(b, zero(Y), zero(Y)) → U8_aag(Y, binaryZ_in_a(Y))
U8_aag(Y, binaryZ_out_a(Y)) → addy_out_aag(b, zero(Y), zero(Y))
addy_in_aag(X, Y, Z) → U9_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(zero(X), zero(Y), zero(Z)) → U10_aag(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_aag(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aag(zero(X), zero(Y), zero(Z))
addz_in_aag(zero(X), one(Y), one(Z)) → U11_aag(X, Y, Z, addx_in_aag(X, Y, Z))
addx_in_aag(one(X), b, one(X)) → U4_aag(X, binary_in_g(X))
U4_aag(X, binary_out_g(X)) → addx_out_aag(one(X), b, one(X))
addx_in_aag(zero(X), b, zero(X)) → U5_aag(X, binaryZ_in_a(X))
U5_aag(X, binaryZ_out_a(X)) → addx_out_aag(zero(X), b, zero(X))
addx_in_aag(X, Y, Z) → U6_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(one(X), zero(Y), one(Z)) → U12_aag(X, Y, Z, addy_in_aag(X, Y, Z))
U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_aag(one(X), zero(Y), one(Z))
addz_in_aag(one(X), one(Y), zero(Z)) → U13_aag(X, Y, Z, addc_in_aaa(X, Y, Z))
U13_aag(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aag(one(X), one(Y), zero(Z))
U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addx_out_aag(X, Y, Z)
U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) → addz_out_aag(zero(X), one(Y), one(Z))
U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addy_out_aag(X, Y, Z)
U12_agg(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_agg(one(X), zero(Y), one(Z))
addz_in_agg(one(X), one(Y), zero(Z)) → U13_agg(X, Y, Z, addc_in_aga(X, Y, Z))
U13_agg(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_agg(one(X), one(Y), zero(Z))
U6_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → addx_out_agg(X, Y, Z)
U11_agg(X, Y, Z, addx_out_agg(X, Y, Z)) → addz_out_agg(zero(X), one(Y), one(Z))
U3_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → add_out_agg(X, Y, Z)
U37_aag(R, S, RSS, add_out_agg(S, zero(RS), RSS)) → times_out_aag(one(R), S, RSS)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
SUCC_IN_AA(one(X), zero(Z)) → SUCC_IN_AA(X, Z)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
SUCC_IN_AA → SUCC_IN_AA
SUCC_IN_AA → SUCC_IN_AA
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
ADDZ_IN_AAA(one(X), zero(Y), one(Z)) → ADDY_IN_AAA(X, Y, Z)
ADDY_IN_AAA(X, Y, Z) → ADDZ_IN_AAA(X, Y, Z)
ADDY_IN_AAA1(X, Y, Z) → ADDC_IN_AAA1(X, Y, Z)
ADDX_IN_AAA1(X, Y, Z) → ADDC_IN_AAA1(X, Y, Z)
ADDC_IN_AAA1(one(X), one(Y), one(Z)) → ADDC_IN_AAA(X, Y, Z)
ADDC_IN_AAA1(one(X), zero(Y), zero(Z)) → ADDY_IN_AAA1(X, Y, Z)
ADDC_IN_AAA1(zero(X), one(Y), zero(Z)) → ADDX_IN_AAA1(X, Y, Z)
ADDZ_IN_AAA(one(X), one(Y), zero(Z)) → ADDC_IN_AAA(X, Y, Z)
ADDZ_IN_AAA(zero(X), zero(Y), zero(Z)) → ADDZ_IN_AAA(X, Y, Z)
ADDX_IN_AAA(X, Y, Z) → ADDZ_IN_AAA(X, Y, Z)
ADDC_IN_AAA1(zero(X), zero(Y), one(Z)) → ADDZ_IN_AAA(X, Y, Z)
ADDC_IN_AAA(X, Y, Z) → ADDC_IN_AAA1(X, Y, Z)
ADDZ_IN_AAA(zero(X), one(Y), one(Z)) → ADDX_IN_AAA(X, Y, Z)
times_in_aag(one(b), X, X) → times_out_aag(one(b), X, X)
times_in_aag(zero(R), S, zero(RS)) → U35_aag(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(b), X, X) → times_out_aaa(one(b), X, X)
times_in_aaa(zero(R), S, zero(RS)) → U35_aaa(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(R), S, RSS) → U36_aaa(R, S, RSS, times_in_aaa(R, S, RS))
U36_aaa(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aaa(R, S, RSS, add_in_aga(S, zero(RS), RSS))
add_in_aga(b, b, b) → add_out_aga(b, b, b)
add_in_aga(X, b, X) → U1_aga(X, binaryZ_in_a(X))
binaryZ_in_a(zero(X)) → U29_a(X, binaryZ_in_a(X))
binaryZ_in_a(one(X)) → U30_a(X, binary_in_a(X))
binary_in_a(b) → binary_out_a(b)
binary_in_a(zero(X)) → U27_a(X, binaryZ_in_a(X))
U27_a(X, binaryZ_out_a(X)) → binary_out_a(zero(X))
binary_in_a(one(X)) → U28_a(X, binary_in_a(X))
U28_a(X, binary_out_a(X)) → binary_out_a(one(X))
U30_a(X, binary_out_a(X)) → binaryZ_out_a(one(X))
U29_a(X, binaryZ_out_a(X)) → binaryZ_out_a(zero(X))
U1_aga(X, binaryZ_out_a(X)) → add_out_aga(X, b, X)
add_in_aga(b, Y, Y) → U2_aga(Y, binaryZ_in_g(Y))
binaryZ_in_g(zero(X)) → U29_g(X, binaryZ_in_a(X))
U29_g(X, binaryZ_out_a(X)) → binaryZ_out_g(zero(X))
binaryZ_in_g(one(X)) → U30_g(X, binary_in_g(X))
binary_in_g(b) → binary_out_g(b)
binary_in_g(zero(X)) → U27_g(X, binaryZ_in_a(X))
U27_g(X, binaryZ_out_a(X)) → binary_out_g(zero(X))
binary_in_g(one(X)) → U28_g(X, binary_in_g(X))
U28_g(X, binary_out_g(X)) → binary_out_g(one(X))
U30_g(X, binary_out_g(X)) → binaryZ_out_g(one(X))
U2_aga(Y, binaryZ_out_g(Y)) → add_out_aga(b, Y, Y)
add_in_aga(X, Y, Z) → U3_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(zero(X), zero(Y), zero(Z)) → U10_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), zero(Y), zero(Z)) → U10_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), one(Y), one(Z)) → U11_aaa(X, Y, Z, addx_in_aaa(X, Y, Z))
addx_in_aaa(one(X), b, one(X)) → U4_aaa(X, binary_in_a(X))
U4_aaa(X, binary_out_a(X)) → addx_out_aaa(one(X), b, one(X))
addx_in_aaa(zero(X), b, zero(X)) → U5_aaa(X, binaryZ_in_a(X))
U5_aaa(X, binaryZ_out_a(X)) → addx_out_aaa(zero(X), b, zero(X))
addx_in_aaa(X, Y, Z) → U6_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), zero(Y), one(Z)) → U12_aaa(X, Y, Z, addy_in_aaa(X, Y, Z))
addy_in_aaa(b, one(Y), one(Y)) → U7_aaa(Y, binary_in_a(Y))
U7_aaa(Y, binary_out_a(Y)) → addy_out_aaa(b, one(Y), one(Y))
addy_in_aaa(b, zero(Y), zero(Y)) → U8_aaa(Y, binaryZ_in_a(Y))
U8_aaa(Y, binaryZ_out_a(Y)) → addy_out_aaa(b, zero(Y), zero(Y))
addy_in_aaa(X, Y, Z) → U9_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), one(Y), zero(Z)) → U13_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
addc_in_aaa(b, b, one(b)) → addc_out_aaa(b, b, one(b))
addc_in_aaa(X, b, Z) → U14_aaa(X, Z, succZ_in_aa(X, Z))
succZ_in_aa(zero(X), one(X)) → U33_aa(X, binaryZ_in_a(X))
U33_aa(X, binaryZ_out_a(X)) → succZ_out_aa(zero(X), one(X))
succZ_in_aa(one(X), zero(Z)) → U34_aa(X, Z, succ_in_aa(X, Z))
succ_in_aa(b, one(b)) → succ_out_aa(b, one(b))
succ_in_aa(zero(X), one(X)) → U31_aa(X, binaryZ_in_a(X))
U31_aa(X, binaryZ_out_a(X)) → succ_out_aa(zero(X), one(X))
succ_in_aa(one(X), zero(Z)) → U32_aa(X, Z, succ_in_aa(X, Z))
U32_aa(X, Z, succ_out_aa(X, Z)) → succ_out_aa(one(X), zero(Z))
U34_aa(X, Z, succ_out_aa(X, Z)) → succZ_out_aa(one(X), zero(Z))
U14_aaa(X, Z, succZ_out_aa(X, Z)) → addc_out_aaa(X, b, Z)
addc_in_aaa(b, Y, Z) → U15_aaa(Y, Z, succZ_in_aa(Y, Z))
U15_aaa(Y, Z, succZ_out_aa(Y, Z)) → addc_out_aaa(b, Y, Z)
addc_in_aaa(X, Y, Z) → U16_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(zero(X), zero(Y), one(Z)) → U23_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), zero(Y), one(Z))
addC_in_aaa(zero(X), one(Y), zero(Z)) → U24_aaa(X, Y, Z, addX_in_aaa(X, Y, Z))
addX_in_aaa(zero(X), b, one(X)) → U17_aaa(X, binaryZ_in_a(X))
U17_aaa(X, binaryZ_out_a(X)) → addX_out_aaa(zero(X), b, one(X))
addX_in_aaa(one(X), b, zero(Z)) → U18_aaa(X, Z, succ_in_aa(X, Z))
U18_aaa(X, Z, succ_out_aa(X, Z)) → addX_out_aaa(one(X), b, zero(Z))
addX_in_aaa(X, Y, Z) → U19_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), zero(Y), zero(Z)) → U25_aaa(X, Y, Z, addY_in_aaa(X, Y, Z))
addY_in_aaa(b, zero(Y), one(Y)) → U20_aaa(Y, binaryZ_in_a(Y))
U20_aaa(Y, binaryZ_out_a(Y)) → addY_out_aaa(b, zero(Y), one(Y))
addY_in_aaa(b, one(Y), zero(Z)) → U21_aaa(Y, Z, succ_in_aa(Y, Z))
U21_aaa(Y, Z, succ_out_aa(Y, Z)) → addY_out_aaa(b, one(Y), zero(Z))
addY_in_aaa(X, Y, Z) → U22_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), one(Y), one(Z)) → U26_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
U26_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), one(Y), one(Z))
U22_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addY_out_aaa(X, Y, Z)
U25_aaa(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), zero(Y), zero(Z))
U19_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addX_out_aaa(X, Y, Z)
U24_aaa(X, Y, Z, addX_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), one(Y), zero(Z))
U16_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addc_out_aaa(X, Y, Z)
U13_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), one(Y), zero(Z))
U9_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addy_out_aaa(X, Y, Z)
U12_aaa(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), zero(Y), one(Z))
U6_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addx_out_aaa(X, Y, Z)
U11_aaa(X, Y, Z, addx_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), one(Y), one(Z))
U10_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), zero(Y), zero(Z))
U10_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aga(zero(X), zero(Y), zero(Z))
addz_in_aga(zero(X), one(Y), one(Z)) → U11_aga(X, Y, Z, addx_in_aga(X, Y, Z))
addx_in_aga(one(X), b, one(X)) → U4_aga(X, binary_in_a(X))
U4_aga(X, binary_out_a(X)) → addx_out_aga(one(X), b, one(X))
addx_in_aga(zero(X), b, zero(X)) → U5_aga(X, binaryZ_in_a(X))
U5_aga(X, binaryZ_out_a(X)) → addx_out_aga(zero(X), b, zero(X))
addx_in_aga(X, Y, Z) → U6_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(one(X), zero(Y), one(Z)) → U12_aga(X, Y, Z, addy_in_aaa(X, Y, Z))
U12_aga(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aga(one(X), zero(Y), one(Z))
addz_in_aga(one(X), one(Y), zero(Z)) → U13_aga(X, Y, Z, addc_in_aga(X, Y, Z))
addc_in_aga(b, b, one(b)) → addc_out_aga(b, b, one(b))
addc_in_aga(X, b, Z) → U14_aga(X, Z, succZ_in_aa(X, Z))
U14_aga(X, Z, succZ_out_aa(X, Z)) → addc_out_aga(X, b, Z)
addc_in_aga(b, Y, Z) → U15_aga(Y, Z, succZ_in_ga(Y, Z))
succZ_in_ga(zero(X), one(X)) → U33_ga(X, binaryZ_in_a(X))
U33_ga(X, binaryZ_out_a(X)) → succZ_out_ga(zero(X), one(X))
succZ_in_ga(one(X), zero(Z)) → U34_ga(X, Z, succ_in_ga(X, Z))
succ_in_ga(b, one(b)) → succ_out_ga(b, one(b))
succ_in_ga(zero(X), one(X)) → U31_ga(X, binaryZ_in_a(X))
U31_ga(X, binaryZ_out_a(X)) → succ_out_ga(zero(X), one(X))
succ_in_ga(one(X), zero(Z)) → U32_ga(X, Z, succ_in_ga(X, Z))
U32_ga(X, Z, succ_out_ga(X, Z)) → succ_out_ga(one(X), zero(Z))
U34_ga(X, Z, succ_out_ga(X, Z)) → succZ_out_ga(one(X), zero(Z))
U15_aga(Y, Z, succZ_out_ga(Y, Z)) → addc_out_aga(b, Y, Z)
addc_in_aga(X, Y, Z) → U16_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(zero(X), zero(Y), one(Z)) → U23_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aga(zero(X), zero(Y), one(Z))
addC_in_aga(zero(X), one(Y), zero(Z)) → U24_aga(X, Y, Z, addX_in_aga(X, Y, Z))
addX_in_aga(zero(X), b, one(X)) → U17_aga(X, binaryZ_in_a(X))
U17_aga(X, binaryZ_out_a(X)) → addX_out_aga(zero(X), b, one(X))
addX_in_aga(one(X), b, zero(Z)) → U18_aga(X, Z, succ_in_aa(X, Z))
U18_aga(X, Z, succ_out_aa(X, Z)) → addX_out_aga(one(X), b, zero(Z))
addX_in_aga(X, Y, Z) → U19_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(one(X), zero(Y), zero(Z)) → U25_aga(X, Y, Z, addY_in_aaa(X, Y, Z))
U25_aga(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aga(one(X), zero(Y), zero(Z))
addC_in_aga(one(X), one(Y), one(Z)) → U26_aga(X, Y, Z, addc_in_aga(X, Y, Z))
U26_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addC_out_aga(one(X), one(Y), one(Z))
U19_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addX_out_aga(X, Y, Z)
U24_aga(X, Y, Z, addX_out_aga(X, Y, Z)) → addC_out_aga(zero(X), one(Y), zero(Z))
U16_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addc_out_aga(X, Y, Z)
U13_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_aga(one(X), one(Y), zero(Z))
U6_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → addx_out_aga(X, Y, Z)
U11_aga(X, Y, Z, addx_out_aga(X, Y, Z)) → addz_out_aga(zero(X), one(Y), one(Z))
U3_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → add_out_aga(X, Y, Z)
U37_aaa(R, S, RSS, add_out_aga(S, zero(RS), RSS)) → times_out_aaa(one(R), S, RSS)
U35_aaa(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aaa(zero(R), S, zero(RS))
U35_aag(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aag(zero(R), S, zero(RS))
times_in_aag(one(R), S, RSS) → U36_aag(R, S, RSS, times_in_aaa(R, S, RS))
U36_aag(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aag(R, S, RSS, add_in_agg(S, zero(RS), RSS))
add_in_agg(b, b, b) → add_out_agg(b, b, b)
add_in_agg(X, b, X) → U1_agg(X, binaryZ_in_g(X))
U1_agg(X, binaryZ_out_g(X)) → add_out_agg(X, b, X)
add_in_agg(b, Y, Y) → U2_agg(Y, binaryZ_in_g(Y))
U2_agg(Y, binaryZ_out_g(Y)) → add_out_agg(b, Y, Y)
add_in_agg(X, Y, Z) → U3_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(zero(X), zero(Y), zero(Z)) → U10_agg(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_agg(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_agg(zero(X), zero(Y), zero(Z))
addz_in_agg(zero(X), one(Y), one(Z)) → U11_agg(X, Y, Z, addx_in_agg(X, Y, Z))
addx_in_agg(one(X), b, one(X)) → U4_agg(X, binary_in_g(X))
U4_agg(X, binary_out_g(X)) → addx_out_agg(one(X), b, one(X))
addx_in_agg(zero(X), b, zero(X)) → U5_agg(X, binaryZ_in_a(X))
U5_agg(X, binaryZ_out_a(X)) → addx_out_agg(zero(X), b, zero(X))
addx_in_agg(X, Y, Z) → U6_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(one(X), zero(Y), one(Z)) → U12_agg(X, Y, Z, addy_in_aag(X, Y, Z))
addy_in_aag(b, one(Y), one(Y)) → U7_aag(Y, binary_in_g(Y))
U7_aag(Y, binary_out_g(Y)) → addy_out_aag(b, one(Y), one(Y))
addy_in_aag(b, zero(Y), zero(Y)) → U8_aag(Y, binaryZ_in_a(Y))
U8_aag(Y, binaryZ_out_a(Y)) → addy_out_aag(b, zero(Y), zero(Y))
addy_in_aag(X, Y, Z) → U9_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(zero(X), zero(Y), zero(Z)) → U10_aag(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_aag(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aag(zero(X), zero(Y), zero(Z))
addz_in_aag(zero(X), one(Y), one(Z)) → U11_aag(X, Y, Z, addx_in_aag(X, Y, Z))
addx_in_aag(one(X), b, one(X)) → U4_aag(X, binary_in_g(X))
U4_aag(X, binary_out_g(X)) → addx_out_aag(one(X), b, one(X))
addx_in_aag(zero(X), b, zero(X)) → U5_aag(X, binaryZ_in_a(X))
U5_aag(X, binaryZ_out_a(X)) → addx_out_aag(zero(X), b, zero(X))
addx_in_aag(X, Y, Z) → U6_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(one(X), zero(Y), one(Z)) → U12_aag(X, Y, Z, addy_in_aag(X, Y, Z))
U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_aag(one(X), zero(Y), one(Z))
addz_in_aag(one(X), one(Y), zero(Z)) → U13_aag(X, Y, Z, addc_in_aaa(X, Y, Z))
U13_aag(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aag(one(X), one(Y), zero(Z))
U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addx_out_aag(X, Y, Z)
U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) → addz_out_aag(zero(X), one(Y), one(Z))
U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addy_out_aag(X, Y, Z)
U12_agg(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_agg(one(X), zero(Y), one(Z))
addz_in_agg(one(X), one(Y), zero(Z)) → U13_agg(X, Y, Z, addc_in_aga(X, Y, Z))
U13_agg(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_agg(one(X), one(Y), zero(Z))
U6_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → addx_out_agg(X, Y, Z)
U11_agg(X, Y, Z, addx_out_agg(X, Y, Z)) → addz_out_agg(zero(X), one(Y), one(Z))
U3_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → add_out_agg(X, Y, Z)
U37_aag(R, S, RSS, add_out_agg(S, zero(RS), RSS)) → times_out_aag(one(R), S, RSS)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
ADDZ_IN_AAA(one(X), zero(Y), one(Z)) → ADDY_IN_AAA(X, Y, Z)
ADDY_IN_AAA(X, Y, Z) → ADDZ_IN_AAA(X, Y, Z)
ADDY_IN_AAA1(X, Y, Z) → ADDC_IN_AAA1(X, Y, Z)
ADDX_IN_AAA1(X, Y, Z) → ADDC_IN_AAA1(X, Y, Z)
ADDC_IN_AAA1(one(X), one(Y), one(Z)) → ADDC_IN_AAA(X, Y, Z)
ADDC_IN_AAA1(one(X), zero(Y), zero(Z)) → ADDY_IN_AAA1(X, Y, Z)
ADDC_IN_AAA1(zero(X), one(Y), zero(Z)) → ADDX_IN_AAA1(X, Y, Z)
ADDZ_IN_AAA(one(X), one(Y), zero(Z)) → ADDC_IN_AAA(X, Y, Z)
ADDZ_IN_AAA(zero(X), zero(Y), zero(Z)) → ADDZ_IN_AAA(X, Y, Z)
ADDX_IN_AAA(X, Y, Z) → ADDZ_IN_AAA(X, Y, Z)
ADDC_IN_AAA1(zero(X), zero(Y), one(Z)) → ADDZ_IN_AAA(X, Y, Z)
ADDC_IN_AAA(X, Y, Z) → ADDC_IN_AAA1(X, Y, Z)
ADDZ_IN_AAA(zero(X), one(Y), one(Z)) → ADDX_IN_AAA(X, Y, Z)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
ADDC_IN_AAA1 → ADDC_IN_AAA
ADDC_IN_AAA1 → ADDX_IN_AAA1
ADDC_IN_AAA → ADDC_IN_AAA1
ADDC_IN_AAA1 → ADDZ_IN_AAA
ADDZ_IN_AAA → ADDX_IN_AAA
ADDY_IN_AAA → ADDZ_IN_AAA
ADDX_IN_AAA → ADDZ_IN_AAA
ADDZ_IN_AAA → ADDY_IN_AAA
ADDY_IN_AAA1 → ADDC_IN_AAA1
ADDZ_IN_AAA → ADDC_IN_AAA
ADDC_IN_AAA1 → ADDY_IN_AAA1
ADDZ_IN_AAA → ADDZ_IN_AAA
ADDX_IN_AAA1 → ADDC_IN_AAA1
ADDC_IN_AAA1 → ADDC_IN_AAA
ADDC_IN_AAA1 → ADDX_IN_AAA1
ADDC_IN_AAA → ADDC_IN_AAA1
ADDC_IN_AAA1 → ADDZ_IN_AAA
ADDZ_IN_AAA → ADDX_IN_AAA
ADDY_IN_AAA → ADDZ_IN_AAA
ADDX_IN_AAA → ADDZ_IN_AAA
ADDZ_IN_AAA → ADDY_IN_AAA
ADDY_IN_AAA1 → ADDC_IN_AAA1
ADDZ_IN_AAA → ADDC_IN_AAA
ADDC_IN_AAA1 → ADDY_IN_AAA1
ADDZ_IN_AAA → ADDZ_IN_AAA
ADDX_IN_AAA1 → ADDC_IN_AAA1
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
ADDX_IN_AGA1(X, Y, Z) → ADDC_IN_AGA1(X, Y, Z)
ADDC_IN_AGA(X, Y, Z) → ADDC_IN_AGA1(X, Y, Z)
ADDC_IN_AGA1(one(X), one(Y), one(Z)) → ADDC_IN_AGA(X, Y, Z)
ADDC_IN_AGA1(zero(X), one(Y), zero(Z)) → ADDX_IN_AGA1(X, Y, Z)
times_in_aag(one(b), X, X) → times_out_aag(one(b), X, X)
times_in_aag(zero(R), S, zero(RS)) → U35_aag(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(b), X, X) → times_out_aaa(one(b), X, X)
times_in_aaa(zero(R), S, zero(RS)) → U35_aaa(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(R), S, RSS) → U36_aaa(R, S, RSS, times_in_aaa(R, S, RS))
U36_aaa(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aaa(R, S, RSS, add_in_aga(S, zero(RS), RSS))
add_in_aga(b, b, b) → add_out_aga(b, b, b)
add_in_aga(X, b, X) → U1_aga(X, binaryZ_in_a(X))
binaryZ_in_a(zero(X)) → U29_a(X, binaryZ_in_a(X))
binaryZ_in_a(one(X)) → U30_a(X, binary_in_a(X))
binary_in_a(b) → binary_out_a(b)
binary_in_a(zero(X)) → U27_a(X, binaryZ_in_a(X))
U27_a(X, binaryZ_out_a(X)) → binary_out_a(zero(X))
binary_in_a(one(X)) → U28_a(X, binary_in_a(X))
U28_a(X, binary_out_a(X)) → binary_out_a(one(X))
U30_a(X, binary_out_a(X)) → binaryZ_out_a(one(X))
U29_a(X, binaryZ_out_a(X)) → binaryZ_out_a(zero(X))
U1_aga(X, binaryZ_out_a(X)) → add_out_aga(X, b, X)
add_in_aga(b, Y, Y) → U2_aga(Y, binaryZ_in_g(Y))
binaryZ_in_g(zero(X)) → U29_g(X, binaryZ_in_a(X))
U29_g(X, binaryZ_out_a(X)) → binaryZ_out_g(zero(X))
binaryZ_in_g(one(X)) → U30_g(X, binary_in_g(X))
binary_in_g(b) → binary_out_g(b)
binary_in_g(zero(X)) → U27_g(X, binaryZ_in_a(X))
U27_g(X, binaryZ_out_a(X)) → binary_out_g(zero(X))
binary_in_g(one(X)) → U28_g(X, binary_in_g(X))
U28_g(X, binary_out_g(X)) → binary_out_g(one(X))
U30_g(X, binary_out_g(X)) → binaryZ_out_g(one(X))
U2_aga(Y, binaryZ_out_g(Y)) → add_out_aga(b, Y, Y)
add_in_aga(X, Y, Z) → U3_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(zero(X), zero(Y), zero(Z)) → U10_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), zero(Y), zero(Z)) → U10_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), one(Y), one(Z)) → U11_aaa(X, Y, Z, addx_in_aaa(X, Y, Z))
addx_in_aaa(one(X), b, one(X)) → U4_aaa(X, binary_in_a(X))
U4_aaa(X, binary_out_a(X)) → addx_out_aaa(one(X), b, one(X))
addx_in_aaa(zero(X), b, zero(X)) → U5_aaa(X, binaryZ_in_a(X))
U5_aaa(X, binaryZ_out_a(X)) → addx_out_aaa(zero(X), b, zero(X))
addx_in_aaa(X, Y, Z) → U6_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), zero(Y), one(Z)) → U12_aaa(X, Y, Z, addy_in_aaa(X, Y, Z))
addy_in_aaa(b, one(Y), one(Y)) → U7_aaa(Y, binary_in_a(Y))
U7_aaa(Y, binary_out_a(Y)) → addy_out_aaa(b, one(Y), one(Y))
addy_in_aaa(b, zero(Y), zero(Y)) → U8_aaa(Y, binaryZ_in_a(Y))
U8_aaa(Y, binaryZ_out_a(Y)) → addy_out_aaa(b, zero(Y), zero(Y))
addy_in_aaa(X, Y, Z) → U9_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), one(Y), zero(Z)) → U13_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
addc_in_aaa(b, b, one(b)) → addc_out_aaa(b, b, one(b))
addc_in_aaa(X, b, Z) → U14_aaa(X, Z, succZ_in_aa(X, Z))
succZ_in_aa(zero(X), one(X)) → U33_aa(X, binaryZ_in_a(X))
U33_aa(X, binaryZ_out_a(X)) → succZ_out_aa(zero(X), one(X))
succZ_in_aa(one(X), zero(Z)) → U34_aa(X, Z, succ_in_aa(X, Z))
succ_in_aa(b, one(b)) → succ_out_aa(b, one(b))
succ_in_aa(zero(X), one(X)) → U31_aa(X, binaryZ_in_a(X))
U31_aa(X, binaryZ_out_a(X)) → succ_out_aa(zero(X), one(X))
succ_in_aa(one(X), zero(Z)) → U32_aa(X, Z, succ_in_aa(X, Z))
U32_aa(X, Z, succ_out_aa(X, Z)) → succ_out_aa(one(X), zero(Z))
U34_aa(X, Z, succ_out_aa(X, Z)) → succZ_out_aa(one(X), zero(Z))
U14_aaa(X, Z, succZ_out_aa(X, Z)) → addc_out_aaa(X, b, Z)
addc_in_aaa(b, Y, Z) → U15_aaa(Y, Z, succZ_in_aa(Y, Z))
U15_aaa(Y, Z, succZ_out_aa(Y, Z)) → addc_out_aaa(b, Y, Z)
addc_in_aaa(X, Y, Z) → U16_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(zero(X), zero(Y), one(Z)) → U23_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), zero(Y), one(Z))
addC_in_aaa(zero(X), one(Y), zero(Z)) → U24_aaa(X, Y, Z, addX_in_aaa(X, Y, Z))
addX_in_aaa(zero(X), b, one(X)) → U17_aaa(X, binaryZ_in_a(X))
U17_aaa(X, binaryZ_out_a(X)) → addX_out_aaa(zero(X), b, one(X))
addX_in_aaa(one(X), b, zero(Z)) → U18_aaa(X, Z, succ_in_aa(X, Z))
U18_aaa(X, Z, succ_out_aa(X, Z)) → addX_out_aaa(one(X), b, zero(Z))
addX_in_aaa(X, Y, Z) → U19_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), zero(Y), zero(Z)) → U25_aaa(X, Y, Z, addY_in_aaa(X, Y, Z))
addY_in_aaa(b, zero(Y), one(Y)) → U20_aaa(Y, binaryZ_in_a(Y))
U20_aaa(Y, binaryZ_out_a(Y)) → addY_out_aaa(b, zero(Y), one(Y))
addY_in_aaa(b, one(Y), zero(Z)) → U21_aaa(Y, Z, succ_in_aa(Y, Z))
U21_aaa(Y, Z, succ_out_aa(Y, Z)) → addY_out_aaa(b, one(Y), zero(Z))
addY_in_aaa(X, Y, Z) → U22_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), one(Y), one(Z)) → U26_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
U26_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), one(Y), one(Z))
U22_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addY_out_aaa(X, Y, Z)
U25_aaa(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), zero(Y), zero(Z))
U19_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addX_out_aaa(X, Y, Z)
U24_aaa(X, Y, Z, addX_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), one(Y), zero(Z))
U16_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addc_out_aaa(X, Y, Z)
U13_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), one(Y), zero(Z))
U9_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addy_out_aaa(X, Y, Z)
U12_aaa(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), zero(Y), one(Z))
U6_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addx_out_aaa(X, Y, Z)
U11_aaa(X, Y, Z, addx_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), one(Y), one(Z))
U10_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), zero(Y), zero(Z))
U10_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aga(zero(X), zero(Y), zero(Z))
addz_in_aga(zero(X), one(Y), one(Z)) → U11_aga(X, Y, Z, addx_in_aga(X, Y, Z))
addx_in_aga(one(X), b, one(X)) → U4_aga(X, binary_in_a(X))
U4_aga(X, binary_out_a(X)) → addx_out_aga(one(X), b, one(X))
addx_in_aga(zero(X), b, zero(X)) → U5_aga(X, binaryZ_in_a(X))
U5_aga(X, binaryZ_out_a(X)) → addx_out_aga(zero(X), b, zero(X))
addx_in_aga(X, Y, Z) → U6_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(one(X), zero(Y), one(Z)) → U12_aga(X, Y, Z, addy_in_aaa(X, Y, Z))
U12_aga(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aga(one(X), zero(Y), one(Z))
addz_in_aga(one(X), one(Y), zero(Z)) → U13_aga(X, Y, Z, addc_in_aga(X, Y, Z))
addc_in_aga(b, b, one(b)) → addc_out_aga(b, b, one(b))
addc_in_aga(X, b, Z) → U14_aga(X, Z, succZ_in_aa(X, Z))
U14_aga(X, Z, succZ_out_aa(X, Z)) → addc_out_aga(X, b, Z)
addc_in_aga(b, Y, Z) → U15_aga(Y, Z, succZ_in_ga(Y, Z))
succZ_in_ga(zero(X), one(X)) → U33_ga(X, binaryZ_in_a(X))
U33_ga(X, binaryZ_out_a(X)) → succZ_out_ga(zero(X), one(X))
succZ_in_ga(one(X), zero(Z)) → U34_ga(X, Z, succ_in_ga(X, Z))
succ_in_ga(b, one(b)) → succ_out_ga(b, one(b))
succ_in_ga(zero(X), one(X)) → U31_ga(X, binaryZ_in_a(X))
U31_ga(X, binaryZ_out_a(X)) → succ_out_ga(zero(X), one(X))
succ_in_ga(one(X), zero(Z)) → U32_ga(X, Z, succ_in_ga(X, Z))
U32_ga(X, Z, succ_out_ga(X, Z)) → succ_out_ga(one(X), zero(Z))
U34_ga(X, Z, succ_out_ga(X, Z)) → succZ_out_ga(one(X), zero(Z))
U15_aga(Y, Z, succZ_out_ga(Y, Z)) → addc_out_aga(b, Y, Z)
addc_in_aga(X, Y, Z) → U16_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(zero(X), zero(Y), one(Z)) → U23_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aga(zero(X), zero(Y), one(Z))
addC_in_aga(zero(X), one(Y), zero(Z)) → U24_aga(X, Y, Z, addX_in_aga(X, Y, Z))
addX_in_aga(zero(X), b, one(X)) → U17_aga(X, binaryZ_in_a(X))
U17_aga(X, binaryZ_out_a(X)) → addX_out_aga(zero(X), b, one(X))
addX_in_aga(one(X), b, zero(Z)) → U18_aga(X, Z, succ_in_aa(X, Z))
U18_aga(X, Z, succ_out_aa(X, Z)) → addX_out_aga(one(X), b, zero(Z))
addX_in_aga(X, Y, Z) → U19_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(one(X), zero(Y), zero(Z)) → U25_aga(X, Y, Z, addY_in_aaa(X, Y, Z))
U25_aga(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aga(one(X), zero(Y), zero(Z))
addC_in_aga(one(X), one(Y), one(Z)) → U26_aga(X, Y, Z, addc_in_aga(X, Y, Z))
U26_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addC_out_aga(one(X), one(Y), one(Z))
U19_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addX_out_aga(X, Y, Z)
U24_aga(X, Y, Z, addX_out_aga(X, Y, Z)) → addC_out_aga(zero(X), one(Y), zero(Z))
U16_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addc_out_aga(X, Y, Z)
U13_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_aga(one(X), one(Y), zero(Z))
U6_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → addx_out_aga(X, Y, Z)
U11_aga(X, Y, Z, addx_out_aga(X, Y, Z)) → addz_out_aga(zero(X), one(Y), one(Z))
U3_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → add_out_aga(X, Y, Z)
U37_aaa(R, S, RSS, add_out_aga(S, zero(RS), RSS)) → times_out_aaa(one(R), S, RSS)
U35_aaa(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aaa(zero(R), S, zero(RS))
U35_aag(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aag(zero(R), S, zero(RS))
times_in_aag(one(R), S, RSS) → U36_aag(R, S, RSS, times_in_aaa(R, S, RS))
U36_aag(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aag(R, S, RSS, add_in_agg(S, zero(RS), RSS))
add_in_agg(b, b, b) → add_out_agg(b, b, b)
add_in_agg(X, b, X) → U1_agg(X, binaryZ_in_g(X))
U1_agg(X, binaryZ_out_g(X)) → add_out_agg(X, b, X)
add_in_agg(b, Y, Y) → U2_agg(Y, binaryZ_in_g(Y))
U2_agg(Y, binaryZ_out_g(Y)) → add_out_agg(b, Y, Y)
add_in_agg(X, Y, Z) → U3_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(zero(X), zero(Y), zero(Z)) → U10_agg(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_agg(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_agg(zero(X), zero(Y), zero(Z))
addz_in_agg(zero(X), one(Y), one(Z)) → U11_agg(X, Y, Z, addx_in_agg(X, Y, Z))
addx_in_agg(one(X), b, one(X)) → U4_agg(X, binary_in_g(X))
U4_agg(X, binary_out_g(X)) → addx_out_agg(one(X), b, one(X))
addx_in_agg(zero(X), b, zero(X)) → U5_agg(X, binaryZ_in_a(X))
U5_agg(X, binaryZ_out_a(X)) → addx_out_agg(zero(X), b, zero(X))
addx_in_agg(X, Y, Z) → U6_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(one(X), zero(Y), one(Z)) → U12_agg(X, Y, Z, addy_in_aag(X, Y, Z))
addy_in_aag(b, one(Y), one(Y)) → U7_aag(Y, binary_in_g(Y))
U7_aag(Y, binary_out_g(Y)) → addy_out_aag(b, one(Y), one(Y))
addy_in_aag(b, zero(Y), zero(Y)) → U8_aag(Y, binaryZ_in_a(Y))
U8_aag(Y, binaryZ_out_a(Y)) → addy_out_aag(b, zero(Y), zero(Y))
addy_in_aag(X, Y, Z) → U9_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(zero(X), zero(Y), zero(Z)) → U10_aag(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_aag(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aag(zero(X), zero(Y), zero(Z))
addz_in_aag(zero(X), one(Y), one(Z)) → U11_aag(X, Y, Z, addx_in_aag(X, Y, Z))
addx_in_aag(one(X), b, one(X)) → U4_aag(X, binary_in_g(X))
U4_aag(X, binary_out_g(X)) → addx_out_aag(one(X), b, one(X))
addx_in_aag(zero(X), b, zero(X)) → U5_aag(X, binaryZ_in_a(X))
U5_aag(X, binaryZ_out_a(X)) → addx_out_aag(zero(X), b, zero(X))
addx_in_aag(X, Y, Z) → U6_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(one(X), zero(Y), one(Z)) → U12_aag(X, Y, Z, addy_in_aag(X, Y, Z))
U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_aag(one(X), zero(Y), one(Z))
addz_in_aag(one(X), one(Y), zero(Z)) → U13_aag(X, Y, Z, addc_in_aaa(X, Y, Z))
U13_aag(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aag(one(X), one(Y), zero(Z))
U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addx_out_aag(X, Y, Z)
U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) → addz_out_aag(zero(X), one(Y), one(Z))
U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addy_out_aag(X, Y, Z)
U12_agg(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_agg(one(X), zero(Y), one(Z))
addz_in_agg(one(X), one(Y), zero(Z)) → U13_agg(X, Y, Z, addc_in_aga(X, Y, Z))
U13_agg(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_agg(one(X), one(Y), zero(Z))
U6_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → addx_out_agg(X, Y, Z)
U11_agg(X, Y, Z, addx_out_agg(X, Y, Z)) → addz_out_agg(zero(X), one(Y), one(Z))
U3_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → add_out_agg(X, Y, Z)
U37_aag(R, S, RSS, add_out_agg(S, zero(RS), RSS)) → times_out_aag(one(R), S, RSS)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
ADDX_IN_AGA1(X, Y, Z) → ADDC_IN_AGA1(X, Y, Z)
ADDC_IN_AGA(X, Y, Z) → ADDC_IN_AGA1(X, Y, Z)
ADDC_IN_AGA1(one(X), one(Y), one(Z)) → ADDC_IN_AGA(X, Y, Z)
ADDC_IN_AGA1(zero(X), one(Y), zero(Z)) → ADDX_IN_AGA1(X, Y, Z)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
ADDC_IN_AGA(Y) → ADDC_IN_AGA1(Y)
ADDX_IN_AGA1(Y) → ADDC_IN_AGA1(Y)
ADDC_IN_AGA1(one(Y)) → ADDX_IN_AGA1(Y)
ADDC_IN_AGA1(one(Y)) → ADDC_IN_AGA(Y)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
ADDX_IN_AGA(X, Y, Z) → ADDZ_IN_AGA(X, Y, Z)
ADDZ_IN_AGA(zero(X), one(Y), one(Z)) → ADDX_IN_AGA(X, Y, Z)
times_in_aag(one(b), X, X) → times_out_aag(one(b), X, X)
times_in_aag(zero(R), S, zero(RS)) → U35_aag(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(b), X, X) → times_out_aaa(one(b), X, X)
times_in_aaa(zero(R), S, zero(RS)) → U35_aaa(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(R), S, RSS) → U36_aaa(R, S, RSS, times_in_aaa(R, S, RS))
U36_aaa(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aaa(R, S, RSS, add_in_aga(S, zero(RS), RSS))
add_in_aga(b, b, b) → add_out_aga(b, b, b)
add_in_aga(X, b, X) → U1_aga(X, binaryZ_in_a(X))
binaryZ_in_a(zero(X)) → U29_a(X, binaryZ_in_a(X))
binaryZ_in_a(one(X)) → U30_a(X, binary_in_a(X))
binary_in_a(b) → binary_out_a(b)
binary_in_a(zero(X)) → U27_a(X, binaryZ_in_a(X))
U27_a(X, binaryZ_out_a(X)) → binary_out_a(zero(X))
binary_in_a(one(X)) → U28_a(X, binary_in_a(X))
U28_a(X, binary_out_a(X)) → binary_out_a(one(X))
U30_a(X, binary_out_a(X)) → binaryZ_out_a(one(X))
U29_a(X, binaryZ_out_a(X)) → binaryZ_out_a(zero(X))
U1_aga(X, binaryZ_out_a(X)) → add_out_aga(X, b, X)
add_in_aga(b, Y, Y) → U2_aga(Y, binaryZ_in_g(Y))
binaryZ_in_g(zero(X)) → U29_g(X, binaryZ_in_a(X))
U29_g(X, binaryZ_out_a(X)) → binaryZ_out_g(zero(X))
binaryZ_in_g(one(X)) → U30_g(X, binary_in_g(X))
binary_in_g(b) → binary_out_g(b)
binary_in_g(zero(X)) → U27_g(X, binaryZ_in_a(X))
U27_g(X, binaryZ_out_a(X)) → binary_out_g(zero(X))
binary_in_g(one(X)) → U28_g(X, binary_in_g(X))
U28_g(X, binary_out_g(X)) → binary_out_g(one(X))
U30_g(X, binary_out_g(X)) → binaryZ_out_g(one(X))
U2_aga(Y, binaryZ_out_g(Y)) → add_out_aga(b, Y, Y)
add_in_aga(X, Y, Z) → U3_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(zero(X), zero(Y), zero(Z)) → U10_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), zero(Y), zero(Z)) → U10_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), one(Y), one(Z)) → U11_aaa(X, Y, Z, addx_in_aaa(X, Y, Z))
addx_in_aaa(one(X), b, one(X)) → U4_aaa(X, binary_in_a(X))
U4_aaa(X, binary_out_a(X)) → addx_out_aaa(one(X), b, one(X))
addx_in_aaa(zero(X), b, zero(X)) → U5_aaa(X, binaryZ_in_a(X))
U5_aaa(X, binaryZ_out_a(X)) → addx_out_aaa(zero(X), b, zero(X))
addx_in_aaa(X, Y, Z) → U6_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), zero(Y), one(Z)) → U12_aaa(X, Y, Z, addy_in_aaa(X, Y, Z))
addy_in_aaa(b, one(Y), one(Y)) → U7_aaa(Y, binary_in_a(Y))
U7_aaa(Y, binary_out_a(Y)) → addy_out_aaa(b, one(Y), one(Y))
addy_in_aaa(b, zero(Y), zero(Y)) → U8_aaa(Y, binaryZ_in_a(Y))
U8_aaa(Y, binaryZ_out_a(Y)) → addy_out_aaa(b, zero(Y), zero(Y))
addy_in_aaa(X, Y, Z) → U9_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), one(Y), zero(Z)) → U13_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
addc_in_aaa(b, b, one(b)) → addc_out_aaa(b, b, one(b))
addc_in_aaa(X, b, Z) → U14_aaa(X, Z, succZ_in_aa(X, Z))
succZ_in_aa(zero(X), one(X)) → U33_aa(X, binaryZ_in_a(X))
U33_aa(X, binaryZ_out_a(X)) → succZ_out_aa(zero(X), one(X))
succZ_in_aa(one(X), zero(Z)) → U34_aa(X, Z, succ_in_aa(X, Z))
succ_in_aa(b, one(b)) → succ_out_aa(b, one(b))
succ_in_aa(zero(X), one(X)) → U31_aa(X, binaryZ_in_a(X))
U31_aa(X, binaryZ_out_a(X)) → succ_out_aa(zero(X), one(X))
succ_in_aa(one(X), zero(Z)) → U32_aa(X, Z, succ_in_aa(X, Z))
U32_aa(X, Z, succ_out_aa(X, Z)) → succ_out_aa(one(X), zero(Z))
U34_aa(X, Z, succ_out_aa(X, Z)) → succZ_out_aa(one(X), zero(Z))
U14_aaa(X, Z, succZ_out_aa(X, Z)) → addc_out_aaa(X, b, Z)
addc_in_aaa(b, Y, Z) → U15_aaa(Y, Z, succZ_in_aa(Y, Z))
U15_aaa(Y, Z, succZ_out_aa(Y, Z)) → addc_out_aaa(b, Y, Z)
addc_in_aaa(X, Y, Z) → U16_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(zero(X), zero(Y), one(Z)) → U23_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), zero(Y), one(Z))
addC_in_aaa(zero(X), one(Y), zero(Z)) → U24_aaa(X, Y, Z, addX_in_aaa(X, Y, Z))
addX_in_aaa(zero(X), b, one(X)) → U17_aaa(X, binaryZ_in_a(X))
U17_aaa(X, binaryZ_out_a(X)) → addX_out_aaa(zero(X), b, one(X))
addX_in_aaa(one(X), b, zero(Z)) → U18_aaa(X, Z, succ_in_aa(X, Z))
U18_aaa(X, Z, succ_out_aa(X, Z)) → addX_out_aaa(one(X), b, zero(Z))
addX_in_aaa(X, Y, Z) → U19_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), zero(Y), zero(Z)) → U25_aaa(X, Y, Z, addY_in_aaa(X, Y, Z))
addY_in_aaa(b, zero(Y), one(Y)) → U20_aaa(Y, binaryZ_in_a(Y))
U20_aaa(Y, binaryZ_out_a(Y)) → addY_out_aaa(b, zero(Y), one(Y))
addY_in_aaa(b, one(Y), zero(Z)) → U21_aaa(Y, Z, succ_in_aa(Y, Z))
U21_aaa(Y, Z, succ_out_aa(Y, Z)) → addY_out_aaa(b, one(Y), zero(Z))
addY_in_aaa(X, Y, Z) → U22_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), one(Y), one(Z)) → U26_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
U26_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), one(Y), one(Z))
U22_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addY_out_aaa(X, Y, Z)
U25_aaa(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), zero(Y), zero(Z))
U19_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addX_out_aaa(X, Y, Z)
U24_aaa(X, Y, Z, addX_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), one(Y), zero(Z))
U16_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addc_out_aaa(X, Y, Z)
U13_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), one(Y), zero(Z))
U9_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addy_out_aaa(X, Y, Z)
U12_aaa(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), zero(Y), one(Z))
U6_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addx_out_aaa(X, Y, Z)
U11_aaa(X, Y, Z, addx_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), one(Y), one(Z))
U10_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), zero(Y), zero(Z))
U10_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aga(zero(X), zero(Y), zero(Z))
addz_in_aga(zero(X), one(Y), one(Z)) → U11_aga(X, Y, Z, addx_in_aga(X, Y, Z))
addx_in_aga(one(X), b, one(X)) → U4_aga(X, binary_in_a(X))
U4_aga(X, binary_out_a(X)) → addx_out_aga(one(X), b, one(X))
addx_in_aga(zero(X), b, zero(X)) → U5_aga(X, binaryZ_in_a(X))
U5_aga(X, binaryZ_out_a(X)) → addx_out_aga(zero(X), b, zero(X))
addx_in_aga(X, Y, Z) → U6_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(one(X), zero(Y), one(Z)) → U12_aga(X, Y, Z, addy_in_aaa(X, Y, Z))
U12_aga(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aga(one(X), zero(Y), one(Z))
addz_in_aga(one(X), one(Y), zero(Z)) → U13_aga(X, Y, Z, addc_in_aga(X, Y, Z))
addc_in_aga(b, b, one(b)) → addc_out_aga(b, b, one(b))
addc_in_aga(X, b, Z) → U14_aga(X, Z, succZ_in_aa(X, Z))
U14_aga(X, Z, succZ_out_aa(X, Z)) → addc_out_aga(X, b, Z)
addc_in_aga(b, Y, Z) → U15_aga(Y, Z, succZ_in_ga(Y, Z))
succZ_in_ga(zero(X), one(X)) → U33_ga(X, binaryZ_in_a(X))
U33_ga(X, binaryZ_out_a(X)) → succZ_out_ga(zero(X), one(X))
succZ_in_ga(one(X), zero(Z)) → U34_ga(X, Z, succ_in_ga(X, Z))
succ_in_ga(b, one(b)) → succ_out_ga(b, one(b))
succ_in_ga(zero(X), one(X)) → U31_ga(X, binaryZ_in_a(X))
U31_ga(X, binaryZ_out_a(X)) → succ_out_ga(zero(X), one(X))
succ_in_ga(one(X), zero(Z)) → U32_ga(X, Z, succ_in_ga(X, Z))
U32_ga(X, Z, succ_out_ga(X, Z)) → succ_out_ga(one(X), zero(Z))
U34_ga(X, Z, succ_out_ga(X, Z)) → succZ_out_ga(one(X), zero(Z))
U15_aga(Y, Z, succZ_out_ga(Y, Z)) → addc_out_aga(b, Y, Z)
addc_in_aga(X, Y, Z) → U16_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(zero(X), zero(Y), one(Z)) → U23_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aga(zero(X), zero(Y), one(Z))
addC_in_aga(zero(X), one(Y), zero(Z)) → U24_aga(X, Y, Z, addX_in_aga(X, Y, Z))
addX_in_aga(zero(X), b, one(X)) → U17_aga(X, binaryZ_in_a(X))
U17_aga(X, binaryZ_out_a(X)) → addX_out_aga(zero(X), b, one(X))
addX_in_aga(one(X), b, zero(Z)) → U18_aga(X, Z, succ_in_aa(X, Z))
U18_aga(X, Z, succ_out_aa(X, Z)) → addX_out_aga(one(X), b, zero(Z))
addX_in_aga(X, Y, Z) → U19_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(one(X), zero(Y), zero(Z)) → U25_aga(X, Y, Z, addY_in_aaa(X, Y, Z))
U25_aga(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aga(one(X), zero(Y), zero(Z))
addC_in_aga(one(X), one(Y), one(Z)) → U26_aga(X, Y, Z, addc_in_aga(X, Y, Z))
U26_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addC_out_aga(one(X), one(Y), one(Z))
U19_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addX_out_aga(X, Y, Z)
U24_aga(X, Y, Z, addX_out_aga(X, Y, Z)) → addC_out_aga(zero(X), one(Y), zero(Z))
U16_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addc_out_aga(X, Y, Z)
U13_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_aga(one(X), one(Y), zero(Z))
U6_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → addx_out_aga(X, Y, Z)
U11_aga(X, Y, Z, addx_out_aga(X, Y, Z)) → addz_out_aga(zero(X), one(Y), one(Z))
U3_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → add_out_aga(X, Y, Z)
U37_aaa(R, S, RSS, add_out_aga(S, zero(RS), RSS)) → times_out_aaa(one(R), S, RSS)
U35_aaa(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aaa(zero(R), S, zero(RS))
U35_aag(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aag(zero(R), S, zero(RS))
times_in_aag(one(R), S, RSS) → U36_aag(R, S, RSS, times_in_aaa(R, S, RS))
U36_aag(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aag(R, S, RSS, add_in_agg(S, zero(RS), RSS))
add_in_agg(b, b, b) → add_out_agg(b, b, b)
add_in_agg(X, b, X) → U1_agg(X, binaryZ_in_g(X))
U1_agg(X, binaryZ_out_g(X)) → add_out_agg(X, b, X)
add_in_agg(b, Y, Y) → U2_agg(Y, binaryZ_in_g(Y))
U2_agg(Y, binaryZ_out_g(Y)) → add_out_agg(b, Y, Y)
add_in_agg(X, Y, Z) → U3_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(zero(X), zero(Y), zero(Z)) → U10_agg(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_agg(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_agg(zero(X), zero(Y), zero(Z))
addz_in_agg(zero(X), one(Y), one(Z)) → U11_agg(X, Y, Z, addx_in_agg(X, Y, Z))
addx_in_agg(one(X), b, one(X)) → U4_agg(X, binary_in_g(X))
U4_agg(X, binary_out_g(X)) → addx_out_agg(one(X), b, one(X))
addx_in_agg(zero(X), b, zero(X)) → U5_agg(X, binaryZ_in_a(X))
U5_agg(X, binaryZ_out_a(X)) → addx_out_agg(zero(X), b, zero(X))
addx_in_agg(X, Y, Z) → U6_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(one(X), zero(Y), one(Z)) → U12_agg(X, Y, Z, addy_in_aag(X, Y, Z))
addy_in_aag(b, one(Y), one(Y)) → U7_aag(Y, binary_in_g(Y))
U7_aag(Y, binary_out_g(Y)) → addy_out_aag(b, one(Y), one(Y))
addy_in_aag(b, zero(Y), zero(Y)) → U8_aag(Y, binaryZ_in_a(Y))
U8_aag(Y, binaryZ_out_a(Y)) → addy_out_aag(b, zero(Y), zero(Y))
addy_in_aag(X, Y, Z) → U9_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(zero(X), zero(Y), zero(Z)) → U10_aag(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_aag(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aag(zero(X), zero(Y), zero(Z))
addz_in_aag(zero(X), one(Y), one(Z)) → U11_aag(X, Y, Z, addx_in_aag(X, Y, Z))
addx_in_aag(one(X), b, one(X)) → U4_aag(X, binary_in_g(X))
U4_aag(X, binary_out_g(X)) → addx_out_aag(one(X), b, one(X))
addx_in_aag(zero(X), b, zero(X)) → U5_aag(X, binaryZ_in_a(X))
U5_aag(X, binaryZ_out_a(X)) → addx_out_aag(zero(X), b, zero(X))
addx_in_aag(X, Y, Z) → U6_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(one(X), zero(Y), one(Z)) → U12_aag(X, Y, Z, addy_in_aag(X, Y, Z))
U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_aag(one(X), zero(Y), one(Z))
addz_in_aag(one(X), one(Y), zero(Z)) → U13_aag(X, Y, Z, addc_in_aaa(X, Y, Z))
U13_aag(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aag(one(X), one(Y), zero(Z))
U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addx_out_aag(X, Y, Z)
U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) → addz_out_aag(zero(X), one(Y), one(Z))
U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addy_out_aag(X, Y, Z)
U12_agg(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_agg(one(X), zero(Y), one(Z))
addz_in_agg(one(X), one(Y), zero(Z)) → U13_agg(X, Y, Z, addc_in_aga(X, Y, Z))
U13_agg(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_agg(one(X), one(Y), zero(Z))
U6_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → addx_out_agg(X, Y, Z)
U11_agg(X, Y, Z, addx_out_agg(X, Y, Z)) → addz_out_agg(zero(X), one(Y), one(Z))
U3_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → add_out_agg(X, Y, Z)
U37_aag(R, S, RSS, add_out_agg(S, zero(RS), RSS)) → times_out_aag(one(R), S, RSS)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
ADDX_IN_AGA(X, Y, Z) → ADDZ_IN_AGA(X, Y, Z)
ADDZ_IN_AGA(zero(X), one(Y), one(Z)) → ADDX_IN_AGA(X, Y, Z)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
ADDX_IN_AGA(Y) → ADDZ_IN_AGA(Y)
ADDZ_IN_AGA(one(Y)) → ADDX_IN_AGA(Y)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PiDP
BINARY_IN_G(one(X)) → BINARY_IN_G(X)
times_in_aag(one(b), X, X) → times_out_aag(one(b), X, X)
times_in_aag(zero(R), S, zero(RS)) → U35_aag(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(b), X, X) → times_out_aaa(one(b), X, X)
times_in_aaa(zero(R), S, zero(RS)) → U35_aaa(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(R), S, RSS) → U36_aaa(R, S, RSS, times_in_aaa(R, S, RS))
U36_aaa(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aaa(R, S, RSS, add_in_aga(S, zero(RS), RSS))
add_in_aga(b, b, b) → add_out_aga(b, b, b)
add_in_aga(X, b, X) → U1_aga(X, binaryZ_in_a(X))
binaryZ_in_a(zero(X)) → U29_a(X, binaryZ_in_a(X))
binaryZ_in_a(one(X)) → U30_a(X, binary_in_a(X))
binary_in_a(b) → binary_out_a(b)
binary_in_a(zero(X)) → U27_a(X, binaryZ_in_a(X))
U27_a(X, binaryZ_out_a(X)) → binary_out_a(zero(X))
binary_in_a(one(X)) → U28_a(X, binary_in_a(X))
U28_a(X, binary_out_a(X)) → binary_out_a(one(X))
U30_a(X, binary_out_a(X)) → binaryZ_out_a(one(X))
U29_a(X, binaryZ_out_a(X)) → binaryZ_out_a(zero(X))
U1_aga(X, binaryZ_out_a(X)) → add_out_aga(X, b, X)
add_in_aga(b, Y, Y) → U2_aga(Y, binaryZ_in_g(Y))
binaryZ_in_g(zero(X)) → U29_g(X, binaryZ_in_a(X))
U29_g(X, binaryZ_out_a(X)) → binaryZ_out_g(zero(X))
binaryZ_in_g(one(X)) → U30_g(X, binary_in_g(X))
binary_in_g(b) → binary_out_g(b)
binary_in_g(zero(X)) → U27_g(X, binaryZ_in_a(X))
U27_g(X, binaryZ_out_a(X)) → binary_out_g(zero(X))
binary_in_g(one(X)) → U28_g(X, binary_in_g(X))
U28_g(X, binary_out_g(X)) → binary_out_g(one(X))
U30_g(X, binary_out_g(X)) → binaryZ_out_g(one(X))
U2_aga(Y, binaryZ_out_g(Y)) → add_out_aga(b, Y, Y)
add_in_aga(X, Y, Z) → U3_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(zero(X), zero(Y), zero(Z)) → U10_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), zero(Y), zero(Z)) → U10_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), one(Y), one(Z)) → U11_aaa(X, Y, Z, addx_in_aaa(X, Y, Z))
addx_in_aaa(one(X), b, one(X)) → U4_aaa(X, binary_in_a(X))
U4_aaa(X, binary_out_a(X)) → addx_out_aaa(one(X), b, one(X))
addx_in_aaa(zero(X), b, zero(X)) → U5_aaa(X, binaryZ_in_a(X))
U5_aaa(X, binaryZ_out_a(X)) → addx_out_aaa(zero(X), b, zero(X))
addx_in_aaa(X, Y, Z) → U6_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), zero(Y), one(Z)) → U12_aaa(X, Y, Z, addy_in_aaa(X, Y, Z))
addy_in_aaa(b, one(Y), one(Y)) → U7_aaa(Y, binary_in_a(Y))
U7_aaa(Y, binary_out_a(Y)) → addy_out_aaa(b, one(Y), one(Y))
addy_in_aaa(b, zero(Y), zero(Y)) → U8_aaa(Y, binaryZ_in_a(Y))
U8_aaa(Y, binaryZ_out_a(Y)) → addy_out_aaa(b, zero(Y), zero(Y))
addy_in_aaa(X, Y, Z) → U9_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), one(Y), zero(Z)) → U13_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
addc_in_aaa(b, b, one(b)) → addc_out_aaa(b, b, one(b))
addc_in_aaa(X, b, Z) → U14_aaa(X, Z, succZ_in_aa(X, Z))
succZ_in_aa(zero(X), one(X)) → U33_aa(X, binaryZ_in_a(X))
U33_aa(X, binaryZ_out_a(X)) → succZ_out_aa(zero(X), one(X))
succZ_in_aa(one(X), zero(Z)) → U34_aa(X, Z, succ_in_aa(X, Z))
succ_in_aa(b, one(b)) → succ_out_aa(b, one(b))
succ_in_aa(zero(X), one(X)) → U31_aa(X, binaryZ_in_a(X))
U31_aa(X, binaryZ_out_a(X)) → succ_out_aa(zero(X), one(X))
succ_in_aa(one(X), zero(Z)) → U32_aa(X, Z, succ_in_aa(X, Z))
U32_aa(X, Z, succ_out_aa(X, Z)) → succ_out_aa(one(X), zero(Z))
U34_aa(X, Z, succ_out_aa(X, Z)) → succZ_out_aa(one(X), zero(Z))
U14_aaa(X, Z, succZ_out_aa(X, Z)) → addc_out_aaa(X, b, Z)
addc_in_aaa(b, Y, Z) → U15_aaa(Y, Z, succZ_in_aa(Y, Z))
U15_aaa(Y, Z, succZ_out_aa(Y, Z)) → addc_out_aaa(b, Y, Z)
addc_in_aaa(X, Y, Z) → U16_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(zero(X), zero(Y), one(Z)) → U23_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), zero(Y), one(Z))
addC_in_aaa(zero(X), one(Y), zero(Z)) → U24_aaa(X, Y, Z, addX_in_aaa(X, Y, Z))
addX_in_aaa(zero(X), b, one(X)) → U17_aaa(X, binaryZ_in_a(X))
U17_aaa(X, binaryZ_out_a(X)) → addX_out_aaa(zero(X), b, one(X))
addX_in_aaa(one(X), b, zero(Z)) → U18_aaa(X, Z, succ_in_aa(X, Z))
U18_aaa(X, Z, succ_out_aa(X, Z)) → addX_out_aaa(one(X), b, zero(Z))
addX_in_aaa(X, Y, Z) → U19_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), zero(Y), zero(Z)) → U25_aaa(X, Y, Z, addY_in_aaa(X, Y, Z))
addY_in_aaa(b, zero(Y), one(Y)) → U20_aaa(Y, binaryZ_in_a(Y))
U20_aaa(Y, binaryZ_out_a(Y)) → addY_out_aaa(b, zero(Y), one(Y))
addY_in_aaa(b, one(Y), zero(Z)) → U21_aaa(Y, Z, succ_in_aa(Y, Z))
U21_aaa(Y, Z, succ_out_aa(Y, Z)) → addY_out_aaa(b, one(Y), zero(Z))
addY_in_aaa(X, Y, Z) → U22_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), one(Y), one(Z)) → U26_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
U26_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), one(Y), one(Z))
U22_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addY_out_aaa(X, Y, Z)
U25_aaa(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), zero(Y), zero(Z))
U19_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addX_out_aaa(X, Y, Z)
U24_aaa(X, Y, Z, addX_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), one(Y), zero(Z))
U16_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addc_out_aaa(X, Y, Z)
U13_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), one(Y), zero(Z))
U9_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addy_out_aaa(X, Y, Z)
U12_aaa(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), zero(Y), one(Z))
U6_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addx_out_aaa(X, Y, Z)
U11_aaa(X, Y, Z, addx_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), one(Y), one(Z))
U10_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), zero(Y), zero(Z))
U10_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aga(zero(X), zero(Y), zero(Z))
addz_in_aga(zero(X), one(Y), one(Z)) → U11_aga(X, Y, Z, addx_in_aga(X, Y, Z))
addx_in_aga(one(X), b, one(X)) → U4_aga(X, binary_in_a(X))
U4_aga(X, binary_out_a(X)) → addx_out_aga(one(X), b, one(X))
addx_in_aga(zero(X), b, zero(X)) → U5_aga(X, binaryZ_in_a(X))
U5_aga(X, binaryZ_out_a(X)) → addx_out_aga(zero(X), b, zero(X))
addx_in_aga(X, Y, Z) → U6_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(one(X), zero(Y), one(Z)) → U12_aga(X, Y, Z, addy_in_aaa(X, Y, Z))
U12_aga(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aga(one(X), zero(Y), one(Z))
addz_in_aga(one(X), one(Y), zero(Z)) → U13_aga(X, Y, Z, addc_in_aga(X, Y, Z))
addc_in_aga(b, b, one(b)) → addc_out_aga(b, b, one(b))
addc_in_aga(X, b, Z) → U14_aga(X, Z, succZ_in_aa(X, Z))
U14_aga(X, Z, succZ_out_aa(X, Z)) → addc_out_aga(X, b, Z)
addc_in_aga(b, Y, Z) → U15_aga(Y, Z, succZ_in_ga(Y, Z))
succZ_in_ga(zero(X), one(X)) → U33_ga(X, binaryZ_in_a(X))
U33_ga(X, binaryZ_out_a(X)) → succZ_out_ga(zero(X), one(X))
succZ_in_ga(one(X), zero(Z)) → U34_ga(X, Z, succ_in_ga(X, Z))
succ_in_ga(b, one(b)) → succ_out_ga(b, one(b))
succ_in_ga(zero(X), one(X)) → U31_ga(X, binaryZ_in_a(X))
U31_ga(X, binaryZ_out_a(X)) → succ_out_ga(zero(X), one(X))
succ_in_ga(one(X), zero(Z)) → U32_ga(X, Z, succ_in_ga(X, Z))
U32_ga(X, Z, succ_out_ga(X, Z)) → succ_out_ga(one(X), zero(Z))
U34_ga(X, Z, succ_out_ga(X, Z)) → succZ_out_ga(one(X), zero(Z))
U15_aga(Y, Z, succZ_out_ga(Y, Z)) → addc_out_aga(b, Y, Z)
addc_in_aga(X, Y, Z) → U16_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(zero(X), zero(Y), one(Z)) → U23_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aga(zero(X), zero(Y), one(Z))
addC_in_aga(zero(X), one(Y), zero(Z)) → U24_aga(X, Y, Z, addX_in_aga(X, Y, Z))
addX_in_aga(zero(X), b, one(X)) → U17_aga(X, binaryZ_in_a(X))
U17_aga(X, binaryZ_out_a(X)) → addX_out_aga(zero(X), b, one(X))
addX_in_aga(one(X), b, zero(Z)) → U18_aga(X, Z, succ_in_aa(X, Z))
U18_aga(X, Z, succ_out_aa(X, Z)) → addX_out_aga(one(X), b, zero(Z))
addX_in_aga(X, Y, Z) → U19_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(one(X), zero(Y), zero(Z)) → U25_aga(X, Y, Z, addY_in_aaa(X, Y, Z))
U25_aga(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aga(one(X), zero(Y), zero(Z))
addC_in_aga(one(X), one(Y), one(Z)) → U26_aga(X, Y, Z, addc_in_aga(X, Y, Z))
U26_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addC_out_aga(one(X), one(Y), one(Z))
U19_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addX_out_aga(X, Y, Z)
U24_aga(X, Y, Z, addX_out_aga(X, Y, Z)) → addC_out_aga(zero(X), one(Y), zero(Z))
U16_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addc_out_aga(X, Y, Z)
U13_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_aga(one(X), one(Y), zero(Z))
U6_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → addx_out_aga(X, Y, Z)
U11_aga(X, Y, Z, addx_out_aga(X, Y, Z)) → addz_out_aga(zero(X), one(Y), one(Z))
U3_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → add_out_aga(X, Y, Z)
U37_aaa(R, S, RSS, add_out_aga(S, zero(RS), RSS)) → times_out_aaa(one(R), S, RSS)
U35_aaa(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aaa(zero(R), S, zero(RS))
U35_aag(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aag(zero(R), S, zero(RS))
times_in_aag(one(R), S, RSS) → U36_aag(R, S, RSS, times_in_aaa(R, S, RS))
U36_aag(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aag(R, S, RSS, add_in_agg(S, zero(RS), RSS))
add_in_agg(b, b, b) → add_out_agg(b, b, b)
add_in_agg(X, b, X) → U1_agg(X, binaryZ_in_g(X))
U1_agg(X, binaryZ_out_g(X)) → add_out_agg(X, b, X)
add_in_agg(b, Y, Y) → U2_agg(Y, binaryZ_in_g(Y))
U2_agg(Y, binaryZ_out_g(Y)) → add_out_agg(b, Y, Y)
add_in_agg(X, Y, Z) → U3_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(zero(X), zero(Y), zero(Z)) → U10_agg(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_agg(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_agg(zero(X), zero(Y), zero(Z))
addz_in_agg(zero(X), one(Y), one(Z)) → U11_agg(X, Y, Z, addx_in_agg(X, Y, Z))
addx_in_agg(one(X), b, one(X)) → U4_agg(X, binary_in_g(X))
U4_agg(X, binary_out_g(X)) → addx_out_agg(one(X), b, one(X))
addx_in_agg(zero(X), b, zero(X)) → U5_agg(X, binaryZ_in_a(X))
U5_agg(X, binaryZ_out_a(X)) → addx_out_agg(zero(X), b, zero(X))
addx_in_agg(X, Y, Z) → U6_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(one(X), zero(Y), one(Z)) → U12_agg(X, Y, Z, addy_in_aag(X, Y, Z))
addy_in_aag(b, one(Y), one(Y)) → U7_aag(Y, binary_in_g(Y))
U7_aag(Y, binary_out_g(Y)) → addy_out_aag(b, one(Y), one(Y))
addy_in_aag(b, zero(Y), zero(Y)) → U8_aag(Y, binaryZ_in_a(Y))
U8_aag(Y, binaryZ_out_a(Y)) → addy_out_aag(b, zero(Y), zero(Y))
addy_in_aag(X, Y, Z) → U9_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(zero(X), zero(Y), zero(Z)) → U10_aag(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_aag(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aag(zero(X), zero(Y), zero(Z))
addz_in_aag(zero(X), one(Y), one(Z)) → U11_aag(X, Y, Z, addx_in_aag(X, Y, Z))
addx_in_aag(one(X), b, one(X)) → U4_aag(X, binary_in_g(X))
U4_aag(X, binary_out_g(X)) → addx_out_aag(one(X), b, one(X))
addx_in_aag(zero(X), b, zero(X)) → U5_aag(X, binaryZ_in_a(X))
U5_aag(X, binaryZ_out_a(X)) → addx_out_aag(zero(X), b, zero(X))
addx_in_aag(X, Y, Z) → U6_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(one(X), zero(Y), one(Z)) → U12_aag(X, Y, Z, addy_in_aag(X, Y, Z))
U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_aag(one(X), zero(Y), one(Z))
addz_in_aag(one(X), one(Y), zero(Z)) → U13_aag(X, Y, Z, addc_in_aaa(X, Y, Z))
U13_aag(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aag(one(X), one(Y), zero(Z))
U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addx_out_aag(X, Y, Z)
U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) → addz_out_aag(zero(X), one(Y), one(Z))
U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addy_out_aag(X, Y, Z)
U12_agg(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_agg(one(X), zero(Y), one(Z))
addz_in_agg(one(X), one(Y), zero(Z)) → U13_agg(X, Y, Z, addc_in_aga(X, Y, Z))
U13_agg(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_agg(one(X), one(Y), zero(Z))
U6_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → addx_out_agg(X, Y, Z)
U11_agg(X, Y, Z, addx_out_agg(X, Y, Z)) → addz_out_agg(zero(X), one(Y), one(Z))
U3_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → add_out_agg(X, Y, Z)
U37_aag(R, S, RSS, add_out_agg(S, zero(RS), RSS)) → times_out_aag(one(R), S, RSS)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PiDP
BINARY_IN_G(one(X)) → BINARY_IN_G(X)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PiDP
↳ PiDP
BINARY_IN_G(one(X)) → BINARY_IN_G(X)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
ADDZ_IN_AAG(zero(X), one(Y), one(Z)) → ADDX_IN_AAG(X, Y, Z)
ADDZ_IN_AAG(one(X), zero(Y), one(Z)) → ADDY_IN_AAG(X, Y, Z)
ADDX_IN_AAG(X, Y, Z) → ADDZ_IN_AAG(X, Y, Z)
ADDY_IN_AAG(X, Y, Z) → ADDZ_IN_AAG(X, Y, Z)
times_in_aag(one(b), X, X) → times_out_aag(one(b), X, X)
times_in_aag(zero(R), S, zero(RS)) → U35_aag(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(b), X, X) → times_out_aaa(one(b), X, X)
times_in_aaa(zero(R), S, zero(RS)) → U35_aaa(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(R), S, RSS) → U36_aaa(R, S, RSS, times_in_aaa(R, S, RS))
U36_aaa(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aaa(R, S, RSS, add_in_aga(S, zero(RS), RSS))
add_in_aga(b, b, b) → add_out_aga(b, b, b)
add_in_aga(X, b, X) → U1_aga(X, binaryZ_in_a(X))
binaryZ_in_a(zero(X)) → U29_a(X, binaryZ_in_a(X))
binaryZ_in_a(one(X)) → U30_a(X, binary_in_a(X))
binary_in_a(b) → binary_out_a(b)
binary_in_a(zero(X)) → U27_a(X, binaryZ_in_a(X))
U27_a(X, binaryZ_out_a(X)) → binary_out_a(zero(X))
binary_in_a(one(X)) → U28_a(X, binary_in_a(X))
U28_a(X, binary_out_a(X)) → binary_out_a(one(X))
U30_a(X, binary_out_a(X)) → binaryZ_out_a(one(X))
U29_a(X, binaryZ_out_a(X)) → binaryZ_out_a(zero(X))
U1_aga(X, binaryZ_out_a(X)) → add_out_aga(X, b, X)
add_in_aga(b, Y, Y) → U2_aga(Y, binaryZ_in_g(Y))
binaryZ_in_g(zero(X)) → U29_g(X, binaryZ_in_a(X))
U29_g(X, binaryZ_out_a(X)) → binaryZ_out_g(zero(X))
binaryZ_in_g(one(X)) → U30_g(X, binary_in_g(X))
binary_in_g(b) → binary_out_g(b)
binary_in_g(zero(X)) → U27_g(X, binaryZ_in_a(X))
U27_g(X, binaryZ_out_a(X)) → binary_out_g(zero(X))
binary_in_g(one(X)) → U28_g(X, binary_in_g(X))
U28_g(X, binary_out_g(X)) → binary_out_g(one(X))
U30_g(X, binary_out_g(X)) → binaryZ_out_g(one(X))
U2_aga(Y, binaryZ_out_g(Y)) → add_out_aga(b, Y, Y)
add_in_aga(X, Y, Z) → U3_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(zero(X), zero(Y), zero(Z)) → U10_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), zero(Y), zero(Z)) → U10_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), one(Y), one(Z)) → U11_aaa(X, Y, Z, addx_in_aaa(X, Y, Z))
addx_in_aaa(one(X), b, one(X)) → U4_aaa(X, binary_in_a(X))
U4_aaa(X, binary_out_a(X)) → addx_out_aaa(one(X), b, one(X))
addx_in_aaa(zero(X), b, zero(X)) → U5_aaa(X, binaryZ_in_a(X))
U5_aaa(X, binaryZ_out_a(X)) → addx_out_aaa(zero(X), b, zero(X))
addx_in_aaa(X, Y, Z) → U6_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), zero(Y), one(Z)) → U12_aaa(X, Y, Z, addy_in_aaa(X, Y, Z))
addy_in_aaa(b, one(Y), one(Y)) → U7_aaa(Y, binary_in_a(Y))
U7_aaa(Y, binary_out_a(Y)) → addy_out_aaa(b, one(Y), one(Y))
addy_in_aaa(b, zero(Y), zero(Y)) → U8_aaa(Y, binaryZ_in_a(Y))
U8_aaa(Y, binaryZ_out_a(Y)) → addy_out_aaa(b, zero(Y), zero(Y))
addy_in_aaa(X, Y, Z) → U9_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), one(Y), zero(Z)) → U13_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
addc_in_aaa(b, b, one(b)) → addc_out_aaa(b, b, one(b))
addc_in_aaa(X, b, Z) → U14_aaa(X, Z, succZ_in_aa(X, Z))
succZ_in_aa(zero(X), one(X)) → U33_aa(X, binaryZ_in_a(X))
U33_aa(X, binaryZ_out_a(X)) → succZ_out_aa(zero(X), one(X))
succZ_in_aa(one(X), zero(Z)) → U34_aa(X, Z, succ_in_aa(X, Z))
succ_in_aa(b, one(b)) → succ_out_aa(b, one(b))
succ_in_aa(zero(X), one(X)) → U31_aa(X, binaryZ_in_a(X))
U31_aa(X, binaryZ_out_a(X)) → succ_out_aa(zero(X), one(X))
succ_in_aa(one(X), zero(Z)) → U32_aa(X, Z, succ_in_aa(X, Z))
U32_aa(X, Z, succ_out_aa(X, Z)) → succ_out_aa(one(X), zero(Z))
U34_aa(X, Z, succ_out_aa(X, Z)) → succZ_out_aa(one(X), zero(Z))
U14_aaa(X, Z, succZ_out_aa(X, Z)) → addc_out_aaa(X, b, Z)
addc_in_aaa(b, Y, Z) → U15_aaa(Y, Z, succZ_in_aa(Y, Z))
U15_aaa(Y, Z, succZ_out_aa(Y, Z)) → addc_out_aaa(b, Y, Z)
addc_in_aaa(X, Y, Z) → U16_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(zero(X), zero(Y), one(Z)) → U23_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), zero(Y), one(Z))
addC_in_aaa(zero(X), one(Y), zero(Z)) → U24_aaa(X, Y, Z, addX_in_aaa(X, Y, Z))
addX_in_aaa(zero(X), b, one(X)) → U17_aaa(X, binaryZ_in_a(X))
U17_aaa(X, binaryZ_out_a(X)) → addX_out_aaa(zero(X), b, one(X))
addX_in_aaa(one(X), b, zero(Z)) → U18_aaa(X, Z, succ_in_aa(X, Z))
U18_aaa(X, Z, succ_out_aa(X, Z)) → addX_out_aaa(one(X), b, zero(Z))
addX_in_aaa(X, Y, Z) → U19_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), zero(Y), zero(Z)) → U25_aaa(X, Y, Z, addY_in_aaa(X, Y, Z))
addY_in_aaa(b, zero(Y), one(Y)) → U20_aaa(Y, binaryZ_in_a(Y))
U20_aaa(Y, binaryZ_out_a(Y)) → addY_out_aaa(b, zero(Y), one(Y))
addY_in_aaa(b, one(Y), zero(Z)) → U21_aaa(Y, Z, succ_in_aa(Y, Z))
U21_aaa(Y, Z, succ_out_aa(Y, Z)) → addY_out_aaa(b, one(Y), zero(Z))
addY_in_aaa(X, Y, Z) → U22_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), one(Y), one(Z)) → U26_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
U26_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), one(Y), one(Z))
U22_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addY_out_aaa(X, Y, Z)
U25_aaa(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), zero(Y), zero(Z))
U19_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addX_out_aaa(X, Y, Z)
U24_aaa(X, Y, Z, addX_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), one(Y), zero(Z))
U16_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addc_out_aaa(X, Y, Z)
U13_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), one(Y), zero(Z))
U9_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addy_out_aaa(X, Y, Z)
U12_aaa(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), zero(Y), one(Z))
U6_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addx_out_aaa(X, Y, Z)
U11_aaa(X, Y, Z, addx_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), one(Y), one(Z))
U10_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), zero(Y), zero(Z))
U10_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aga(zero(X), zero(Y), zero(Z))
addz_in_aga(zero(X), one(Y), one(Z)) → U11_aga(X, Y, Z, addx_in_aga(X, Y, Z))
addx_in_aga(one(X), b, one(X)) → U4_aga(X, binary_in_a(X))
U4_aga(X, binary_out_a(X)) → addx_out_aga(one(X), b, one(X))
addx_in_aga(zero(X), b, zero(X)) → U5_aga(X, binaryZ_in_a(X))
U5_aga(X, binaryZ_out_a(X)) → addx_out_aga(zero(X), b, zero(X))
addx_in_aga(X, Y, Z) → U6_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(one(X), zero(Y), one(Z)) → U12_aga(X, Y, Z, addy_in_aaa(X, Y, Z))
U12_aga(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aga(one(X), zero(Y), one(Z))
addz_in_aga(one(X), one(Y), zero(Z)) → U13_aga(X, Y, Z, addc_in_aga(X, Y, Z))
addc_in_aga(b, b, one(b)) → addc_out_aga(b, b, one(b))
addc_in_aga(X, b, Z) → U14_aga(X, Z, succZ_in_aa(X, Z))
U14_aga(X, Z, succZ_out_aa(X, Z)) → addc_out_aga(X, b, Z)
addc_in_aga(b, Y, Z) → U15_aga(Y, Z, succZ_in_ga(Y, Z))
succZ_in_ga(zero(X), one(X)) → U33_ga(X, binaryZ_in_a(X))
U33_ga(X, binaryZ_out_a(X)) → succZ_out_ga(zero(X), one(X))
succZ_in_ga(one(X), zero(Z)) → U34_ga(X, Z, succ_in_ga(X, Z))
succ_in_ga(b, one(b)) → succ_out_ga(b, one(b))
succ_in_ga(zero(X), one(X)) → U31_ga(X, binaryZ_in_a(X))
U31_ga(X, binaryZ_out_a(X)) → succ_out_ga(zero(X), one(X))
succ_in_ga(one(X), zero(Z)) → U32_ga(X, Z, succ_in_ga(X, Z))
U32_ga(X, Z, succ_out_ga(X, Z)) → succ_out_ga(one(X), zero(Z))
U34_ga(X, Z, succ_out_ga(X, Z)) → succZ_out_ga(one(X), zero(Z))
U15_aga(Y, Z, succZ_out_ga(Y, Z)) → addc_out_aga(b, Y, Z)
addc_in_aga(X, Y, Z) → U16_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(zero(X), zero(Y), one(Z)) → U23_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aga(zero(X), zero(Y), one(Z))
addC_in_aga(zero(X), one(Y), zero(Z)) → U24_aga(X, Y, Z, addX_in_aga(X, Y, Z))
addX_in_aga(zero(X), b, one(X)) → U17_aga(X, binaryZ_in_a(X))
U17_aga(X, binaryZ_out_a(X)) → addX_out_aga(zero(X), b, one(X))
addX_in_aga(one(X), b, zero(Z)) → U18_aga(X, Z, succ_in_aa(X, Z))
U18_aga(X, Z, succ_out_aa(X, Z)) → addX_out_aga(one(X), b, zero(Z))
addX_in_aga(X, Y, Z) → U19_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(one(X), zero(Y), zero(Z)) → U25_aga(X, Y, Z, addY_in_aaa(X, Y, Z))
U25_aga(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aga(one(X), zero(Y), zero(Z))
addC_in_aga(one(X), one(Y), one(Z)) → U26_aga(X, Y, Z, addc_in_aga(X, Y, Z))
U26_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addC_out_aga(one(X), one(Y), one(Z))
U19_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addX_out_aga(X, Y, Z)
U24_aga(X, Y, Z, addX_out_aga(X, Y, Z)) → addC_out_aga(zero(X), one(Y), zero(Z))
U16_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addc_out_aga(X, Y, Z)
U13_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_aga(one(X), one(Y), zero(Z))
U6_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → addx_out_aga(X, Y, Z)
U11_aga(X, Y, Z, addx_out_aga(X, Y, Z)) → addz_out_aga(zero(X), one(Y), one(Z))
U3_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → add_out_aga(X, Y, Z)
U37_aaa(R, S, RSS, add_out_aga(S, zero(RS), RSS)) → times_out_aaa(one(R), S, RSS)
U35_aaa(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aaa(zero(R), S, zero(RS))
U35_aag(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aag(zero(R), S, zero(RS))
times_in_aag(one(R), S, RSS) → U36_aag(R, S, RSS, times_in_aaa(R, S, RS))
U36_aag(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aag(R, S, RSS, add_in_agg(S, zero(RS), RSS))
add_in_agg(b, b, b) → add_out_agg(b, b, b)
add_in_agg(X, b, X) → U1_agg(X, binaryZ_in_g(X))
U1_agg(X, binaryZ_out_g(X)) → add_out_agg(X, b, X)
add_in_agg(b, Y, Y) → U2_agg(Y, binaryZ_in_g(Y))
U2_agg(Y, binaryZ_out_g(Y)) → add_out_agg(b, Y, Y)
add_in_agg(X, Y, Z) → U3_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(zero(X), zero(Y), zero(Z)) → U10_agg(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_agg(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_agg(zero(X), zero(Y), zero(Z))
addz_in_agg(zero(X), one(Y), one(Z)) → U11_agg(X, Y, Z, addx_in_agg(X, Y, Z))
addx_in_agg(one(X), b, one(X)) → U4_agg(X, binary_in_g(X))
U4_agg(X, binary_out_g(X)) → addx_out_agg(one(X), b, one(X))
addx_in_agg(zero(X), b, zero(X)) → U5_agg(X, binaryZ_in_a(X))
U5_agg(X, binaryZ_out_a(X)) → addx_out_agg(zero(X), b, zero(X))
addx_in_agg(X, Y, Z) → U6_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(one(X), zero(Y), one(Z)) → U12_agg(X, Y, Z, addy_in_aag(X, Y, Z))
addy_in_aag(b, one(Y), one(Y)) → U7_aag(Y, binary_in_g(Y))
U7_aag(Y, binary_out_g(Y)) → addy_out_aag(b, one(Y), one(Y))
addy_in_aag(b, zero(Y), zero(Y)) → U8_aag(Y, binaryZ_in_a(Y))
U8_aag(Y, binaryZ_out_a(Y)) → addy_out_aag(b, zero(Y), zero(Y))
addy_in_aag(X, Y, Z) → U9_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(zero(X), zero(Y), zero(Z)) → U10_aag(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_aag(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aag(zero(X), zero(Y), zero(Z))
addz_in_aag(zero(X), one(Y), one(Z)) → U11_aag(X, Y, Z, addx_in_aag(X, Y, Z))
addx_in_aag(one(X), b, one(X)) → U4_aag(X, binary_in_g(X))
U4_aag(X, binary_out_g(X)) → addx_out_aag(one(X), b, one(X))
addx_in_aag(zero(X), b, zero(X)) → U5_aag(X, binaryZ_in_a(X))
U5_aag(X, binaryZ_out_a(X)) → addx_out_aag(zero(X), b, zero(X))
addx_in_aag(X, Y, Z) → U6_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(one(X), zero(Y), one(Z)) → U12_aag(X, Y, Z, addy_in_aag(X, Y, Z))
U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_aag(one(X), zero(Y), one(Z))
addz_in_aag(one(X), one(Y), zero(Z)) → U13_aag(X, Y, Z, addc_in_aaa(X, Y, Z))
U13_aag(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aag(one(X), one(Y), zero(Z))
U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addx_out_aag(X, Y, Z)
U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) → addz_out_aag(zero(X), one(Y), one(Z))
U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addy_out_aag(X, Y, Z)
U12_agg(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_agg(one(X), zero(Y), one(Z))
addz_in_agg(one(X), one(Y), zero(Z)) → U13_agg(X, Y, Z, addc_in_aga(X, Y, Z))
U13_agg(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_agg(one(X), one(Y), zero(Z))
U6_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → addx_out_agg(X, Y, Z)
U11_agg(X, Y, Z, addx_out_agg(X, Y, Z)) → addz_out_agg(zero(X), one(Y), one(Z))
U3_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → add_out_agg(X, Y, Z)
U37_aag(R, S, RSS, add_out_agg(S, zero(RS), RSS)) → times_out_aag(one(R), S, RSS)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
ADDZ_IN_AAG(zero(X), one(Y), one(Z)) → ADDX_IN_AAG(X, Y, Z)
ADDZ_IN_AAG(one(X), zero(Y), one(Z)) → ADDY_IN_AAG(X, Y, Z)
ADDX_IN_AAG(X, Y, Z) → ADDZ_IN_AAG(X, Y, Z)
ADDY_IN_AAG(X, Y, Z) → ADDZ_IN_AAG(X, Y, Z)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PiDP
ADDY_IN_AAG(Z) → ADDZ_IN_AAG(Z)
ADDZ_IN_AAG(one(Z)) → ADDX_IN_AAG(Z)
ADDX_IN_AAG(Z) → ADDZ_IN_AAG(Z)
ADDZ_IN_AAG(one(Z)) → ADDY_IN_AAG(Z)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
ADDX_IN_AGG(X, Y, Z) → ADDZ_IN_AGG(X, Y, Z)
ADDZ_IN_AGG(zero(X), one(Y), one(Z)) → ADDX_IN_AGG(X, Y, Z)
times_in_aag(one(b), X, X) → times_out_aag(one(b), X, X)
times_in_aag(zero(R), S, zero(RS)) → U35_aag(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(b), X, X) → times_out_aaa(one(b), X, X)
times_in_aaa(zero(R), S, zero(RS)) → U35_aaa(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(R), S, RSS) → U36_aaa(R, S, RSS, times_in_aaa(R, S, RS))
U36_aaa(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aaa(R, S, RSS, add_in_aga(S, zero(RS), RSS))
add_in_aga(b, b, b) → add_out_aga(b, b, b)
add_in_aga(X, b, X) → U1_aga(X, binaryZ_in_a(X))
binaryZ_in_a(zero(X)) → U29_a(X, binaryZ_in_a(X))
binaryZ_in_a(one(X)) → U30_a(X, binary_in_a(X))
binary_in_a(b) → binary_out_a(b)
binary_in_a(zero(X)) → U27_a(X, binaryZ_in_a(X))
U27_a(X, binaryZ_out_a(X)) → binary_out_a(zero(X))
binary_in_a(one(X)) → U28_a(X, binary_in_a(X))
U28_a(X, binary_out_a(X)) → binary_out_a(one(X))
U30_a(X, binary_out_a(X)) → binaryZ_out_a(one(X))
U29_a(X, binaryZ_out_a(X)) → binaryZ_out_a(zero(X))
U1_aga(X, binaryZ_out_a(X)) → add_out_aga(X, b, X)
add_in_aga(b, Y, Y) → U2_aga(Y, binaryZ_in_g(Y))
binaryZ_in_g(zero(X)) → U29_g(X, binaryZ_in_a(X))
U29_g(X, binaryZ_out_a(X)) → binaryZ_out_g(zero(X))
binaryZ_in_g(one(X)) → U30_g(X, binary_in_g(X))
binary_in_g(b) → binary_out_g(b)
binary_in_g(zero(X)) → U27_g(X, binaryZ_in_a(X))
U27_g(X, binaryZ_out_a(X)) → binary_out_g(zero(X))
binary_in_g(one(X)) → U28_g(X, binary_in_g(X))
U28_g(X, binary_out_g(X)) → binary_out_g(one(X))
U30_g(X, binary_out_g(X)) → binaryZ_out_g(one(X))
U2_aga(Y, binaryZ_out_g(Y)) → add_out_aga(b, Y, Y)
add_in_aga(X, Y, Z) → U3_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(zero(X), zero(Y), zero(Z)) → U10_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), zero(Y), zero(Z)) → U10_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), one(Y), one(Z)) → U11_aaa(X, Y, Z, addx_in_aaa(X, Y, Z))
addx_in_aaa(one(X), b, one(X)) → U4_aaa(X, binary_in_a(X))
U4_aaa(X, binary_out_a(X)) → addx_out_aaa(one(X), b, one(X))
addx_in_aaa(zero(X), b, zero(X)) → U5_aaa(X, binaryZ_in_a(X))
U5_aaa(X, binaryZ_out_a(X)) → addx_out_aaa(zero(X), b, zero(X))
addx_in_aaa(X, Y, Z) → U6_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), zero(Y), one(Z)) → U12_aaa(X, Y, Z, addy_in_aaa(X, Y, Z))
addy_in_aaa(b, one(Y), one(Y)) → U7_aaa(Y, binary_in_a(Y))
U7_aaa(Y, binary_out_a(Y)) → addy_out_aaa(b, one(Y), one(Y))
addy_in_aaa(b, zero(Y), zero(Y)) → U8_aaa(Y, binaryZ_in_a(Y))
U8_aaa(Y, binaryZ_out_a(Y)) → addy_out_aaa(b, zero(Y), zero(Y))
addy_in_aaa(X, Y, Z) → U9_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), one(Y), zero(Z)) → U13_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
addc_in_aaa(b, b, one(b)) → addc_out_aaa(b, b, one(b))
addc_in_aaa(X, b, Z) → U14_aaa(X, Z, succZ_in_aa(X, Z))
succZ_in_aa(zero(X), one(X)) → U33_aa(X, binaryZ_in_a(X))
U33_aa(X, binaryZ_out_a(X)) → succZ_out_aa(zero(X), one(X))
succZ_in_aa(one(X), zero(Z)) → U34_aa(X, Z, succ_in_aa(X, Z))
succ_in_aa(b, one(b)) → succ_out_aa(b, one(b))
succ_in_aa(zero(X), one(X)) → U31_aa(X, binaryZ_in_a(X))
U31_aa(X, binaryZ_out_a(X)) → succ_out_aa(zero(X), one(X))
succ_in_aa(one(X), zero(Z)) → U32_aa(X, Z, succ_in_aa(X, Z))
U32_aa(X, Z, succ_out_aa(X, Z)) → succ_out_aa(one(X), zero(Z))
U34_aa(X, Z, succ_out_aa(X, Z)) → succZ_out_aa(one(X), zero(Z))
U14_aaa(X, Z, succZ_out_aa(X, Z)) → addc_out_aaa(X, b, Z)
addc_in_aaa(b, Y, Z) → U15_aaa(Y, Z, succZ_in_aa(Y, Z))
U15_aaa(Y, Z, succZ_out_aa(Y, Z)) → addc_out_aaa(b, Y, Z)
addc_in_aaa(X, Y, Z) → U16_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(zero(X), zero(Y), one(Z)) → U23_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), zero(Y), one(Z))
addC_in_aaa(zero(X), one(Y), zero(Z)) → U24_aaa(X, Y, Z, addX_in_aaa(X, Y, Z))
addX_in_aaa(zero(X), b, one(X)) → U17_aaa(X, binaryZ_in_a(X))
U17_aaa(X, binaryZ_out_a(X)) → addX_out_aaa(zero(X), b, one(X))
addX_in_aaa(one(X), b, zero(Z)) → U18_aaa(X, Z, succ_in_aa(X, Z))
U18_aaa(X, Z, succ_out_aa(X, Z)) → addX_out_aaa(one(X), b, zero(Z))
addX_in_aaa(X, Y, Z) → U19_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), zero(Y), zero(Z)) → U25_aaa(X, Y, Z, addY_in_aaa(X, Y, Z))
addY_in_aaa(b, zero(Y), one(Y)) → U20_aaa(Y, binaryZ_in_a(Y))
U20_aaa(Y, binaryZ_out_a(Y)) → addY_out_aaa(b, zero(Y), one(Y))
addY_in_aaa(b, one(Y), zero(Z)) → U21_aaa(Y, Z, succ_in_aa(Y, Z))
U21_aaa(Y, Z, succ_out_aa(Y, Z)) → addY_out_aaa(b, one(Y), zero(Z))
addY_in_aaa(X, Y, Z) → U22_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), one(Y), one(Z)) → U26_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
U26_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), one(Y), one(Z))
U22_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addY_out_aaa(X, Y, Z)
U25_aaa(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), zero(Y), zero(Z))
U19_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addX_out_aaa(X, Y, Z)
U24_aaa(X, Y, Z, addX_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), one(Y), zero(Z))
U16_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addc_out_aaa(X, Y, Z)
U13_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), one(Y), zero(Z))
U9_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addy_out_aaa(X, Y, Z)
U12_aaa(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), zero(Y), one(Z))
U6_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addx_out_aaa(X, Y, Z)
U11_aaa(X, Y, Z, addx_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), one(Y), one(Z))
U10_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), zero(Y), zero(Z))
U10_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aga(zero(X), zero(Y), zero(Z))
addz_in_aga(zero(X), one(Y), one(Z)) → U11_aga(X, Y, Z, addx_in_aga(X, Y, Z))
addx_in_aga(one(X), b, one(X)) → U4_aga(X, binary_in_a(X))
U4_aga(X, binary_out_a(X)) → addx_out_aga(one(X), b, one(X))
addx_in_aga(zero(X), b, zero(X)) → U5_aga(X, binaryZ_in_a(X))
U5_aga(X, binaryZ_out_a(X)) → addx_out_aga(zero(X), b, zero(X))
addx_in_aga(X, Y, Z) → U6_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(one(X), zero(Y), one(Z)) → U12_aga(X, Y, Z, addy_in_aaa(X, Y, Z))
U12_aga(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aga(one(X), zero(Y), one(Z))
addz_in_aga(one(X), one(Y), zero(Z)) → U13_aga(X, Y, Z, addc_in_aga(X, Y, Z))
addc_in_aga(b, b, one(b)) → addc_out_aga(b, b, one(b))
addc_in_aga(X, b, Z) → U14_aga(X, Z, succZ_in_aa(X, Z))
U14_aga(X, Z, succZ_out_aa(X, Z)) → addc_out_aga(X, b, Z)
addc_in_aga(b, Y, Z) → U15_aga(Y, Z, succZ_in_ga(Y, Z))
succZ_in_ga(zero(X), one(X)) → U33_ga(X, binaryZ_in_a(X))
U33_ga(X, binaryZ_out_a(X)) → succZ_out_ga(zero(X), one(X))
succZ_in_ga(one(X), zero(Z)) → U34_ga(X, Z, succ_in_ga(X, Z))
succ_in_ga(b, one(b)) → succ_out_ga(b, one(b))
succ_in_ga(zero(X), one(X)) → U31_ga(X, binaryZ_in_a(X))
U31_ga(X, binaryZ_out_a(X)) → succ_out_ga(zero(X), one(X))
succ_in_ga(one(X), zero(Z)) → U32_ga(X, Z, succ_in_ga(X, Z))
U32_ga(X, Z, succ_out_ga(X, Z)) → succ_out_ga(one(X), zero(Z))
U34_ga(X, Z, succ_out_ga(X, Z)) → succZ_out_ga(one(X), zero(Z))
U15_aga(Y, Z, succZ_out_ga(Y, Z)) → addc_out_aga(b, Y, Z)
addc_in_aga(X, Y, Z) → U16_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(zero(X), zero(Y), one(Z)) → U23_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aga(zero(X), zero(Y), one(Z))
addC_in_aga(zero(X), one(Y), zero(Z)) → U24_aga(X, Y, Z, addX_in_aga(X, Y, Z))
addX_in_aga(zero(X), b, one(X)) → U17_aga(X, binaryZ_in_a(X))
U17_aga(X, binaryZ_out_a(X)) → addX_out_aga(zero(X), b, one(X))
addX_in_aga(one(X), b, zero(Z)) → U18_aga(X, Z, succ_in_aa(X, Z))
U18_aga(X, Z, succ_out_aa(X, Z)) → addX_out_aga(one(X), b, zero(Z))
addX_in_aga(X, Y, Z) → U19_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(one(X), zero(Y), zero(Z)) → U25_aga(X, Y, Z, addY_in_aaa(X, Y, Z))
U25_aga(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aga(one(X), zero(Y), zero(Z))
addC_in_aga(one(X), one(Y), one(Z)) → U26_aga(X, Y, Z, addc_in_aga(X, Y, Z))
U26_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addC_out_aga(one(X), one(Y), one(Z))
U19_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addX_out_aga(X, Y, Z)
U24_aga(X, Y, Z, addX_out_aga(X, Y, Z)) → addC_out_aga(zero(X), one(Y), zero(Z))
U16_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addc_out_aga(X, Y, Z)
U13_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_aga(one(X), one(Y), zero(Z))
U6_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → addx_out_aga(X, Y, Z)
U11_aga(X, Y, Z, addx_out_aga(X, Y, Z)) → addz_out_aga(zero(X), one(Y), one(Z))
U3_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → add_out_aga(X, Y, Z)
U37_aaa(R, S, RSS, add_out_aga(S, zero(RS), RSS)) → times_out_aaa(one(R), S, RSS)
U35_aaa(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aaa(zero(R), S, zero(RS))
U35_aag(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aag(zero(R), S, zero(RS))
times_in_aag(one(R), S, RSS) → U36_aag(R, S, RSS, times_in_aaa(R, S, RS))
U36_aag(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aag(R, S, RSS, add_in_agg(S, zero(RS), RSS))
add_in_agg(b, b, b) → add_out_agg(b, b, b)
add_in_agg(X, b, X) → U1_agg(X, binaryZ_in_g(X))
U1_agg(X, binaryZ_out_g(X)) → add_out_agg(X, b, X)
add_in_agg(b, Y, Y) → U2_agg(Y, binaryZ_in_g(Y))
U2_agg(Y, binaryZ_out_g(Y)) → add_out_agg(b, Y, Y)
add_in_agg(X, Y, Z) → U3_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(zero(X), zero(Y), zero(Z)) → U10_agg(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_agg(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_agg(zero(X), zero(Y), zero(Z))
addz_in_agg(zero(X), one(Y), one(Z)) → U11_agg(X, Y, Z, addx_in_agg(X, Y, Z))
addx_in_agg(one(X), b, one(X)) → U4_agg(X, binary_in_g(X))
U4_agg(X, binary_out_g(X)) → addx_out_agg(one(X), b, one(X))
addx_in_agg(zero(X), b, zero(X)) → U5_agg(X, binaryZ_in_a(X))
U5_agg(X, binaryZ_out_a(X)) → addx_out_agg(zero(X), b, zero(X))
addx_in_agg(X, Y, Z) → U6_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(one(X), zero(Y), one(Z)) → U12_agg(X, Y, Z, addy_in_aag(X, Y, Z))
addy_in_aag(b, one(Y), one(Y)) → U7_aag(Y, binary_in_g(Y))
U7_aag(Y, binary_out_g(Y)) → addy_out_aag(b, one(Y), one(Y))
addy_in_aag(b, zero(Y), zero(Y)) → U8_aag(Y, binaryZ_in_a(Y))
U8_aag(Y, binaryZ_out_a(Y)) → addy_out_aag(b, zero(Y), zero(Y))
addy_in_aag(X, Y, Z) → U9_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(zero(X), zero(Y), zero(Z)) → U10_aag(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_aag(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aag(zero(X), zero(Y), zero(Z))
addz_in_aag(zero(X), one(Y), one(Z)) → U11_aag(X, Y, Z, addx_in_aag(X, Y, Z))
addx_in_aag(one(X), b, one(X)) → U4_aag(X, binary_in_g(X))
U4_aag(X, binary_out_g(X)) → addx_out_aag(one(X), b, one(X))
addx_in_aag(zero(X), b, zero(X)) → U5_aag(X, binaryZ_in_a(X))
U5_aag(X, binaryZ_out_a(X)) → addx_out_aag(zero(X), b, zero(X))
addx_in_aag(X, Y, Z) → U6_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(one(X), zero(Y), one(Z)) → U12_aag(X, Y, Z, addy_in_aag(X, Y, Z))
U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_aag(one(X), zero(Y), one(Z))
addz_in_aag(one(X), one(Y), zero(Z)) → U13_aag(X, Y, Z, addc_in_aaa(X, Y, Z))
U13_aag(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aag(one(X), one(Y), zero(Z))
U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addx_out_aag(X, Y, Z)
U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) → addz_out_aag(zero(X), one(Y), one(Z))
U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addy_out_aag(X, Y, Z)
U12_agg(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_agg(one(X), zero(Y), one(Z))
addz_in_agg(one(X), one(Y), zero(Z)) → U13_agg(X, Y, Z, addc_in_aga(X, Y, Z))
U13_agg(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_agg(one(X), one(Y), zero(Z))
U6_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → addx_out_agg(X, Y, Z)
U11_agg(X, Y, Z, addx_out_agg(X, Y, Z)) → addz_out_agg(zero(X), one(Y), one(Z))
U3_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → add_out_agg(X, Y, Z)
U37_aag(R, S, RSS, add_out_agg(S, zero(RS), RSS)) → times_out_aag(one(R), S, RSS)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
ADDX_IN_AGG(X, Y, Z) → ADDZ_IN_AGG(X, Y, Z)
ADDZ_IN_AGG(zero(X), one(Y), one(Z)) → ADDX_IN_AGG(X, Y, Z)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
ADDX_IN_AGG(Y, Z) → ADDZ_IN_AGG(Y, Z)
ADDZ_IN_AGG(one(Y), one(Z)) → ADDX_IN_AGG(Y, Z)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
TIMES_IN_AAA(one(R), S, RSS) → TIMES_IN_AAA(R, S, RS)
TIMES_IN_AAA(zero(R), S, zero(RS)) → TIMES_IN_AAA(R, S, RS)
times_in_aag(one(b), X, X) → times_out_aag(one(b), X, X)
times_in_aag(zero(R), S, zero(RS)) → U35_aag(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(b), X, X) → times_out_aaa(one(b), X, X)
times_in_aaa(zero(R), S, zero(RS)) → U35_aaa(R, S, RS, times_in_aaa(R, S, RS))
times_in_aaa(one(R), S, RSS) → U36_aaa(R, S, RSS, times_in_aaa(R, S, RS))
U36_aaa(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aaa(R, S, RSS, add_in_aga(S, zero(RS), RSS))
add_in_aga(b, b, b) → add_out_aga(b, b, b)
add_in_aga(X, b, X) → U1_aga(X, binaryZ_in_a(X))
binaryZ_in_a(zero(X)) → U29_a(X, binaryZ_in_a(X))
binaryZ_in_a(one(X)) → U30_a(X, binary_in_a(X))
binary_in_a(b) → binary_out_a(b)
binary_in_a(zero(X)) → U27_a(X, binaryZ_in_a(X))
U27_a(X, binaryZ_out_a(X)) → binary_out_a(zero(X))
binary_in_a(one(X)) → U28_a(X, binary_in_a(X))
U28_a(X, binary_out_a(X)) → binary_out_a(one(X))
U30_a(X, binary_out_a(X)) → binaryZ_out_a(one(X))
U29_a(X, binaryZ_out_a(X)) → binaryZ_out_a(zero(X))
U1_aga(X, binaryZ_out_a(X)) → add_out_aga(X, b, X)
add_in_aga(b, Y, Y) → U2_aga(Y, binaryZ_in_g(Y))
binaryZ_in_g(zero(X)) → U29_g(X, binaryZ_in_a(X))
U29_g(X, binaryZ_out_a(X)) → binaryZ_out_g(zero(X))
binaryZ_in_g(one(X)) → U30_g(X, binary_in_g(X))
binary_in_g(b) → binary_out_g(b)
binary_in_g(zero(X)) → U27_g(X, binaryZ_in_a(X))
U27_g(X, binaryZ_out_a(X)) → binary_out_g(zero(X))
binary_in_g(one(X)) → U28_g(X, binary_in_g(X))
U28_g(X, binary_out_g(X)) → binary_out_g(one(X))
U30_g(X, binary_out_g(X)) → binaryZ_out_g(one(X))
U2_aga(Y, binaryZ_out_g(Y)) → add_out_aga(b, Y, Y)
add_in_aga(X, Y, Z) → U3_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(zero(X), zero(Y), zero(Z)) → U10_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), zero(Y), zero(Z)) → U10_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(zero(X), one(Y), one(Z)) → U11_aaa(X, Y, Z, addx_in_aaa(X, Y, Z))
addx_in_aaa(one(X), b, one(X)) → U4_aaa(X, binary_in_a(X))
U4_aaa(X, binary_out_a(X)) → addx_out_aaa(one(X), b, one(X))
addx_in_aaa(zero(X), b, zero(X)) → U5_aaa(X, binaryZ_in_a(X))
U5_aaa(X, binaryZ_out_a(X)) → addx_out_aaa(zero(X), b, zero(X))
addx_in_aaa(X, Y, Z) → U6_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), zero(Y), one(Z)) → U12_aaa(X, Y, Z, addy_in_aaa(X, Y, Z))
addy_in_aaa(b, one(Y), one(Y)) → U7_aaa(Y, binary_in_a(Y))
U7_aaa(Y, binary_out_a(Y)) → addy_out_aaa(b, one(Y), one(Y))
addy_in_aaa(b, zero(Y), zero(Y)) → U8_aaa(Y, binaryZ_in_a(Y))
U8_aaa(Y, binaryZ_out_a(Y)) → addy_out_aaa(b, zero(Y), zero(Y))
addy_in_aaa(X, Y, Z) → U9_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
addz_in_aaa(one(X), one(Y), zero(Z)) → U13_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
addc_in_aaa(b, b, one(b)) → addc_out_aaa(b, b, one(b))
addc_in_aaa(X, b, Z) → U14_aaa(X, Z, succZ_in_aa(X, Z))
succZ_in_aa(zero(X), one(X)) → U33_aa(X, binaryZ_in_a(X))
U33_aa(X, binaryZ_out_a(X)) → succZ_out_aa(zero(X), one(X))
succZ_in_aa(one(X), zero(Z)) → U34_aa(X, Z, succ_in_aa(X, Z))
succ_in_aa(b, one(b)) → succ_out_aa(b, one(b))
succ_in_aa(zero(X), one(X)) → U31_aa(X, binaryZ_in_a(X))
U31_aa(X, binaryZ_out_a(X)) → succ_out_aa(zero(X), one(X))
succ_in_aa(one(X), zero(Z)) → U32_aa(X, Z, succ_in_aa(X, Z))
U32_aa(X, Z, succ_out_aa(X, Z)) → succ_out_aa(one(X), zero(Z))
U34_aa(X, Z, succ_out_aa(X, Z)) → succZ_out_aa(one(X), zero(Z))
U14_aaa(X, Z, succZ_out_aa(X, Z)) → addc_out_aaa(X, b, Z)
addc_in_aaa(b, Y, Z) → U15_aaa(Y, Z, succZ_in_aa(Y, Z))
U15_aaa(Y, Z, succZ_out_aa(Y, Z)) → addc_out_aaa(b, Y, Z)
addc_in_aaa(X, Y, Z) → U16_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(zero(X), zero(Y), one(Z)) → U23_aaa(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), zero(Y), one(Z))
addC_in_aaa(zero(X), one(Y), zero(Z)) → U24_aaa(X, Y, Z, addX_in_aaa(X, Y, Z))
addX_in_aaa(zero(X), b, one(X)) → U17_aaa(X, binaryZ_in_a(X))
U17_aaa(X, binaryZ_out_a(X)) → addX_out_aaa(zero(X), b, one(X))
addX_in_aaa(one(X), b, zero(Z)) → U18_aaa(X, Z, succ_in_aa(X, Z))
U18_aaa(X, Z, succ_out_aa(X, Z)) → addX_out_aaa(one(X), b, zero(Z))
addX_in_aaa(X, Y, Z) → U19_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), zero(Y), zero(Z)) → U25_aaa(X, Y, Z, addY_in_aaa(X, Y, Z))
addY_in_aaa(b, zero(Y), one(Y)) → U20_aaa(Y, binaryZ_in_a(Y))
U20_aaa(Y, binaryZ_out_a(Y)) → addY_out_aaa(b, zero(Y), one(Y))
addY_in_aaa(b, one(Y), zero(Z)) → U21_aaa(Y, Z, succ_in_aa(Y, Z))
U21_aaa(Y, Z, succ_out_aa(Y, Z)) → addY_out_aaa(b, one(Y), zero(Z))
addY_in_aaa(X, Y, Z) → U22_aaa(X, Y, Z, addC_in_aaa(X, Y, Z))
addC_in_aaa(one(X), one(Y), one(Z)) → U26_aaa(X, Y, Z, addc_in_aaa(X, Y, Z))
U26_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), one(Y), one(Z))
U22_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addY_out_aaa(X, Y, Z)
U25_aaa(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aaa(one(X), zero(Y), zero(Z))
U19_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addX_out_aaa(X, Y, Z)
U24_aaa(X, Y, Z, addX_out_aaa(X, Y, Z)) → addC_out_aaa(zero(X), one(Y), zero(Z))
U16_aaa(X, Y, Z, addC_out_aaa(X, Y, Z)) → addc_out_aaa(X, Y, Z)
U13_aaa(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), one(Y), zero(Z))
U9_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addy_out_aaa(X, Y, Z)
U12_aaa(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aaa(one(X), zero(Y), one(Z))
U6_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addx_out_aaa(X, Y, Z)
U11_aaa(X, Y, Z, addx_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), one(Y), one(Z))
U10_aaa(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aaa(zero(X), zero(Y), zero(Z))
U10_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aga(zero(X), zero(Y), zero(Z))
addz_in_aga(zero(X), one(Y), one(Z)) → U11_aga(X, Y, Z, addx_in_aga(X, Y, Z))
addx_in_aga(one(X), b, one(X)) → U4_aga(X, binary_in_a(X))
U4_aga(X, binary_out_a(X)) → addx_out_aga(one(X), b, one(X))
addx_in_aga(zero(X), b, zero(X)) → U5_aga(X, binaryZ_in_a(X))
U5_aga(X, binaryZ_out_a(X)) → addx_out_aga(zero(X), b, zero(X))
addx_in_aga(X, Y, Z) → U6_aga(X, Y, Z, addz_in_aga(X, Y, Z))
addz_in_aga(one(X), zero(Y), one(Z)) → U12_aga(X, Y, Z, addy_in_aaa(X, Y, Z))
U12_aga(X, Y, Z, addy_out_aaa(X, Y, Z)) → addz_out_aga(one(X), zero(Y), one(Z))
addz_in_aga(one(X), one(Y), zero(Z)) → U13_aga(X, Y, Z, addc_in_aga(X, Y, Z))
addc_in_aga(b, b, one(b)) → addc_out_aga(b, b, one(b))
addc_in_aga(X, b, Z) → U14_aga(X, Z, succZ_in_aa(X, Z))
U14_aga(X, Z, succZ_out_aa(X, Z)) → addc_out_aga(X, b, Z)
addc_in_aga(b, Y, Z) → U15_aga(Y, Z, succZ_in_ga(Y, Z))
succZ_in_ga(zero(X), one(X)) → U33_ga(X, binaryZ_in_a(X))
U33_ga(X, binaryZ_out_a(X)) → succZ_out_ga(zero(X), one(X))
succZ_in_ga(one(X), zero(Z)) → U34_ga(X, Z, succ_in_ga(X, Z))
succ_in_ga(b, one(b)) → succ_out_ga(b, one(b))
succ_in_ga(zero(X), one(X)) → U31_ga(X, binaryZ_in_a(X))
U31_ga(X, binaryZ_out_a(X)) → succ_out_ga(zero(X), one(X))
succ_in_ga(one(X), zero(Z)) → U32_ga(X, Z, succ_in_ga(X, Z))
U32_ga(X, Z, succ_out_ga(X, Z)) → succ_out_ga(one(X), zero(Z))
U34_ga(X, Z, succ_out_ga(X, Z)) → succZ_out_ga(one(X), zero(Z))
U15_aga(Y, Z, succZ_out_ga(Y, Z)) → addc_out_aga(b, Y, Z)
addc_in_aga(X, Y, Z) → U16_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(zero(X), zero(Y), one(Z)) → U23_aga(X, Y, Z, addz_in_aaa(X, Y, Z))
U23_aga(X, Y, Z, addz_out_aaa(X, Y, Z)) → addC_out_aga(zero(X), zero(Y), one(Z))
addC_in_aga(zero(X), one(Y), zero(Z)) → U24_aga(X, Y, Z, addX_in_aga(X, Y, Z))
addX_in_aga(zero(X), b, one(X)) → U17_aga(X, binaryZ_in_a(X))
U17_aga(X, binaryZ_out_a(X)) → addX_out_aga(zero(X), b, one(X))
addX_in_aga(one(X), b, zero(Z)) → U18_aga(X, Z, succ_in_aa(X, Z))
U18_aga(X, Z, succ_out_aa(X, Z)) → addX_out_aga(one(X), b, zero(Z))
addX_in_aga(X, Y, Z) → U19_aga(X, Y, Z, addC_in_aga(X, Y, Z))
addC_in_aga(one(X), zero(Y), zero(Z)) → U25_aga(X, Y, Z, addY_in_aaa(X, Y, Z))
U25_aga(X, Y, Z, addY_out_aaa(X, Y, Z)) → addC_out_aga(one(X), zero(Y), zero(Z))
addC_in_aga(one(X), one(Y), one(Z)) → U26_aga(X, Y, Z, addc_in_aga(X, Y, Z))
U26_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addC_out_aga(one(X), one(Y), one(Z))
U19_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addX_out_aga(X, Y, Z)
U24_aga(X, Y, Z, addX_out_aga(X, Y, Z)) → addC_out_aga(zero(X), one(Y), zero(Z))
U16_aga(X, Y, Z, addC_out_aga(X, Y, Z)) → addc_out_aga(X, Y, Z)
U13_aga(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_aga(one(X), one(Y), zero(Z))
U6_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → addx_out_aga(X, Y, Z)
U11_aga(X, Y, Z, addx_out_aga(X, Y, Z)) → addz_out_aga(zero(X), one(Y), one(Z))
U3_aga(X, Y, Z, addz_out_aga(X, Y, Z)) → add_out_aga(X, Y, Z)
U37_aaa(R, S, RSS, add_out_aga(S, zero(RS), RSS)) → times_out_aaa(one(R), S, RSS)
U35_aaa(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aaa(zero(R), S, zero(RS))
U35_aag(R, S, RS, times_out_aaa(R, S, RS)) → times_out_aag(zero(R), S, zero(RS))
times_in_aag(one(R), S, RSS) → U36_aag(R, S, RSS, times_in_aaa(R, S, RS))
U36_aag(R, S, RSS, times_out_aaa(R, S, RS)) → U37_aag(R, S, RSS, add_in_agg(S, zero(RS), RSS))
add_in_agg(b, b, b) → add_out_agg(b, b, b)
add_in_agg(X, b, X) → U1_agg(X, binaryZ_in_g(X))
U1_agg(X, binaryZ_out_g(X)) → add_out_agg(X, b, X)
add_in_agg(b, Y, Y) → U2_agg(Y, binaryZ_in_g(Y))
U2_agg(Y, binaryZ_out_g(Y)) → add_out_agg(b, Y, Y)
add_in_agg(X, Y, Z) → U3_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(zero(X), zero(Y), zero(Z)) → U10_agg(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_agg(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_agg(zero(X), zero(Y), zero(Z))
addz_in_agg(zero(X), one(Y), one(Z)) → U11_agg(X, Y, Z, addx_in_agg(X, Y, Z))
addx_in_agg(one(X), b, one(X)) → U4_agg(X, binary_in_g(X))
U4_agg(X, binary_out_g(X)) → addx_out_agg(one(X), b, one(X))
addx_in_agg(zero(X), b, zero(X)) → U5_agg(X, binaryZ_in_a(X))
U5_agg(X, binaryZ_out_a(X)) → addx_out_agg(zero(X), b, zero(X))
addx_in_agg(X, Y, Z) → U6_agg(X, Y, Z, addz_in_agg(X, Y, Z))
addz_in_agg(one(X), zero(Y), one(Z)) → U12_agg(X, Y, Z, addy_in_aag(X, Y, Z))
addy_in_aag(b, one(Y), one(Y)) → U7_aag(Y, binary_in_g(Y))
U7_aag(Y, binary_out_g(Y)) → addy_out_aag(b, one(Y), one(Y))
addy_in_aag(b, zero(Y), zero(Y)) → U8_aag(Y, binaryZ_in_a(Y))
U8_aag(Y, binaryZ_out_a(Y)) → addy_out_aag(b, zero(Y), zero(Y))
addy_in_aag(X, Y, Z) → U9_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(zero(X), zero(Y), zero(Z)) → U10_aag(X, Y, Z, addz_in_aaa(X, Y, Z))
U10_aag(X, Y, Z, addz_out_aaa(X, Y, Z)) → addz_out_aag(zero(X), zero(Y), zero(Z))
addz_in_aag(zero(X), one(Y), one(Z)) → U11_aag(X, Y, Z, addx_in_aag(X, Y, Z))
addx_in_aag(one(X), b, one(X)) → U4_aag(X, binary_in_g(X))
U4_aag(X, binary_out_g(X)) → addx_out_aag(one(X), b, one(X))
addx_in_aag(zero(X), b, zero(X)) → U5_aag(X, binaryZ_in_a(X))
U5_aag(X, binaryZ_out_a(X)) → addx_out_aag(zero(X), b, zero(X))
addx_in_aag(X, Y, Z) → U6_aag(X, Y, Z, addz_in_aag(X, Y, Z))
addz_in_aag(one(X), zero(Y), one(Z)) → U12_aag(X, Y, Z, addy_in_aag(X, Y, Z))
U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_aag(one(X), zero(Y), one(Z))
addz_in_aag(one(X), one(Y), zero(Z)) → U13_aag(X, Y, Z, addc_in_aaa(X, Y, Z))
U13_aag(X, Y, Z, addc_out_aaa(X, Y, Z)) → addz_out_aag(one(X), one(Y), zero(Z))
U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addx_out_aag(X, Y, Z)
U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) → addz_out_aag(zero(X), one(Y), one(Z))
U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) → addy_out_aag(X, Y, Z)
U12_agg(X, Y, Z, addy_out_aag(X, Y, Z)) → addz_out_agg(one(X), zero(Y), one(Z))
addz_in_agg(one(X), one(Y), zero(Z)) → U13_agg(X, Y, Z, addc_in_aga(X, Y, Z))
U13_agg(X, Y, Z, addc_out_aga(X, Y, Z)) → addz_out_agg(one(X), one(Y), zero(Z))
U6_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → addx_out_agg(X, Y, Z)
U11_agg(X, Y, Z, addx_out_agg(X, Y, Z)) → addz_out_agg(zero(X), one(Y), one(Z))
U3_agg(X, Y, Z, addz_out_agg(X, Y, Z)) → add_out_agg(X, Y, Z)
U37_aag(R, S, RSS, add_out_agg(S, zero(RS), RSS)) → times_out_aag(one(R), S, RSS)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
TIMES_IN_AAA(one(R), S, RSS) → TIMES_IN_AAA(R, S, RS)
TIMES_IN_AAA(zero(R), S, zero(RS)) → TIMES_IN_AAA(R, S, RS)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
TIMES_IN_AAA → TIMES_IN_AAA
TIMES_IN_AAA → TIMES_IN_AAA